Dateispeicherort nach dem Befehl mv ohne absolute Pfade

868
Marek Zak

Ich habe versehentlich mvBefehl in Ordner ausgeführt, um Dateien umzubenennen. Aber ich habe vergessen, den absoluten Pfad anzugeben (ich habe es gerade getan mv old_name new_name). Nun sind die Dateien weg. Irgendeine Idee, wo diese Dateien sind?

Danke für jede Hilfe.

0
Wenn Sie den Befehl mv ausführen, ohne einen neuen Ordner anzugeben, müssen Sie die Datei lediglich umbenennen und verbleiben im aktuellen Verzeichnis. Sie sehen die umbenannte Datei überhaupt nicht in demselben Verzeichnis, in dem sich die Datei ursprünglich befand? n8te vor 7 Jahren 0
Ja, ich kann die Dateien im Ordner nicht sehen. Marek Zak vor 7 Jahren 0
Geben Sie 'history' ein, und Sie können genau sehen, welchen Bewegungsbefehl Sie tatsächlich ausgeführt haben. Verwenden Sie `history | less` Wenn Sie so viel getippt haben, können Sie die Historie nicht mehr vollständig sehen. - Haben Sie diesen Befehl mehrmals in verschiedenen Dateien mit demselben 'neuen_namen' ausgeführt? djsmiley2k vor 7 Jahren 1
Wenn der neue Name einen Punkt enthält, wird er ausgeblendet, und Sie müssen ll zum Anzeigen verwenden phuclv vor 7 Jahren 0
"ll" ist ein Alias, der möglicherweise nicht existiert. Verwenden Sie "ls -a", um alle Dateien anzuzeigen, einschließlich derer, die mit beginnen. (versteckt). djsmiley2k vor 7 Jahren 1
Ja, ich führe den Befehl für mehrere Dateien in einer Schleife aus. Ich überprüfte das Skript und stellte fest, dass mir '$' vor der Variablen fehlte, sodass ich alle Dateien in den Variablennamen umbenannt habe. Wiederherstellung von Backups. Fühl dich so dumm, danke für die Hilfe. Marek Zak vor 7 Jahren 1
Kein Problem, froh, dass Sie Backups haben, sonst wäre dies eine ganz andere Geschichte! djsmiley2k vor 7 Jahren 0

2 Antworten auf die Frage

4
djsmiley2k

Sie befinden sich im selben Verzeichnis, wenn Sie keine Verzeichnisbezeichnung wie .. oder ../ .. angegeben haben.

So mv oldFile newFilebleibt im selben Verzeichnis (im Grunde ist es das Umbenennen),

Hinweis : Wenn bereits newFile vorhanden ist, haben Sie es gerade überschrieben. Mv fragt nicht vorher, es sei denn, Sie geben es -ials Argument an.

mv oldFile ../newFile verschiebt es in das übergeordnete Verzeichnis,

mv oldFile ./existingSubDirectory/newFile verschiebt es in das Verzeichnis existsSubDirectory mit dem neuen Dateinamen,

mv oldFile -p ./newSubDirectory/newFile erstellt das neue Unterverzeichnis mit dem Namen 'newSubDirectory' und fügt die neue Datei darin ein.

Sie können kombinieren, um einige sehr seltsame (und in der Regel sinnlose) Verzeichnisdurchquerung durchzuführen, z. B. mv oldFile ././././../../dev/nullwenn Sie es wirklich wollten, aber es hat wenig Sinn.

1
Seth

Wenn Sie keinen vollständigen Pfad angegeben haben, befinden sie sich relativ zum Pfad, an dem Sie gearbeitet haben.

Wenn Sie sich in Ihrem Benutzerverzeichnis ( /home/user) befinden und ausgeführt werden, mv myfile newfilewährend Sie sich in diesem Verzeichnis befinden, wird die Datei in umbenannt newfile. Wenn es existiert, wird es überschrieben. Wenn Sie einen Teil eines Pfads ( mv myfile something/newfile) angegeben haben und der Ordner nicht vorhanden ist, erhalten Sie eine Fehlermeldung. Wenn Sie -pden Ordner angegeben somethinghätten, wäre er erstellt worden.

Wenn Sie den Namen kennen, den Sie verwenden können, findoder ein anderes Dienstprogramm, um die Datei zu finden (unter Debian könnten Sie verwenden locate).