In einem Terminalfenster habe ich Folgendes eingegeben:
mv filename ..\.. [Note the wrong slash.]
Jetzt kann ich es nicht finden. Weg. Ich habe einige Suchanfragen durchgeführt und wiederherstellbare gelöschte Dateien durchsucht. Nichts. Poof. Ist mir recht, dass ich einen Windows-Computer direkt zuvor verwendet habe.
Weiß jemand, wohin es gegangen sein könnte?
command-line
bash
hidden-files
mv
John
quelle
quelle
find / -iname thefilename -print
vielleicht ?thefilename
als ursprünglichem Dateinamen findet dieserfind
Befehl ihn nicht unter dem neuen Namen.Antworten:
Es ist nirgendwo hingegangen, es befindet sich im aktuellen Verzeichnis. Es wurde in
....
(vier Punkte) umbenannt.Wie jeder Dateiname mit einem
.
vorangestellten wird eine versteckte Datei behandelt, so wurde sie versteckt. Wenn Sie das tunls
, werden Sie es nicht finden. Wie immer benötigen Sie die Option-a
(oder-A
)ls
, um die versteckten Dateien anzuzeigen, dhls -a
(oderls -A
), um sie anzuzeigen .Lassen Sie es mich zusammenfassen, Sie haben ausgeführt
mv filename ..\..
, die ersten beiden Punkte würden das übergeordnete Verzeichnis bedeuten, wenn es so wäre../
, aber Sie haben einen umgekehrten Schrägstrich verwendet,..\
der angibt, dass die Shell das nächste Zeichen umgeht, aber ein Punkt.
hat keine besondere Bedeutung für die Shell. Es wird also als Literal behandelt.
und das letzte wird.
ebenfalls hinzugefügt, sodass Sie vier Punkte....
als Dateinamen erhalten.Um wieder zum vorherigen (original) Name, Lauf zurück
mv .... filename
.quelle
la -A
(mit einem Großbuchstaben A). Es tut das Gleichels -a
, schließt aber.
und aus..
.Führen
mv .... filename
Sie aus, um es wieder umzubenennen. (mv ..\.. filename
Würde auch funktionieren, aber das\
ist überflüssig - so wie es in deinem ursprünglichen Befehl war.).
und..
Einträge sind in jedem Verzeichnis und beziehen sich auf die „aktuellen“ und „Eltern“ Verzeichnisse sind. Im Gegensatz zu Windows haben Sequenzen mit mehr als zwei Punkten keine besondere Bedeutung. Es ist zwar ungewöhnlich, aber es steht Ihnen völlig frei, eine gewöhnliche Datei mit einem Namen zu benennen, der nur aus Punkten besteht, solange er mindestens drei Punkte lang ist.\
als Escape-Zeichen verwendet, um sicherzustellen, dass die Shell das folgende Zeichen buchstäblich behandelt, anstatt ihm eine besondere Bedeutung zu geben. Das.
Zeichen hat in der Shell keine besondere Bedeutung (insbesondere ist die Shell nicht dafür verantwortlich, dass die Einträge.
und..
funktionieren). Daher war in Ihrem Befehl\.
gleichbedeutend mit.
..
. Seit dem....
Start mit.
,ls
ohne die-A
oder-a
Flagge laufen, hat es nicht offenbart.quelle
es befindet sich immer noch im selben Verzeichnis, nur noch eine 'versteckte' Datei. Sie können es mit "mv .... filename" wiederherstellen.
quelle