Wie benenne ich ein Verzeichnis über die Befehlszeile um?


Antworten:


737
mv /home/user/oldname /home/user/newname


Cooler Artikel. Genau darum geht es.
Rafał Cieślak

77
Dies funktioniert nicht, wenn der neue Name bereits ein vorhandenes Verzeichnis ist. Stattdessen wird das alte Verzeichnis in das neue verschoben.
Cxrodgers

9
Wenn der Verzeichnisname mit der Großschreibung identisch ist, erhalten Sie No such file or directory. Um dies zu vermeiden, machen Sie so etwas wie mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder.
DutGRIFF

9
@cxrodgers: pass --no-target-directory( -T) , um nicht newnameals Zielverzeichnis behandelt zu werden .
jfs

123

mv kann zwei Jobs erledigen.

  1. Es kann Dateien oder Verzeichnisse verschieben
  2. Es kann Dateien oder Verzeichnisse umbenennen

Um eine Datei oder ein Verzeichnis umzubenennen, geben Sie dies in Terminal ein:

mv old_name new_name 

mit Leerzeichen zwischen den alten und neuen Namen.

Um eine Datei oder ein Verzeichnis zu verschieben, geben Sie dies in Terminal ein.

mv file_name ~/Desktop 

Die Datei wird auf den Desktop verschoben.

Wenn es sich um ein Verzeichnis handelt, das Sie -Rvor dem Verzeichnisnamen hinzufügen sollten :

mv -R directory_name ~/Desktop

3
mvunter Ubuntu ist von GNU coreutils. AFAICT es hat keine -ROption, noch ist es notwendig, wenn ein Verzeichnis verschoben wird.
Arielf

-r funktioniert nicht einmal
user1735921

Die richtige Option ist -T. Siehe @ bmaupins Antwort für sein Verhalten.
Chronometrische

39
mv -T /home/user/oldname /home/user/newname

Dadurch wird das Verzeichnis umbenannt, wenn das Ziel nicht existiert oder wenn es existiert, aber leer ist. Andernfalls erhalten Sie einen Fehler.

Wenn Sie dies stattdessen tun:

mv /home/user/oldname /home/user/newname

Eines von zwei Dingen wird passieren:

  • Wenn /home/user/newnamenicht vorhanden ist , wird es umbenannt /home/user/oldnamezu/home/user/newname
  • Wenn /home/user/newnamevorhanden ist , wird es bewegen /home/user/oldnamein /home/user/newname, das heißt/home/user/newname/oldname

Quelle: Wie kann man entscheiden, dass mv in ein Verzeichnis verschoben wird, anstatt das Verzeichnis zu ersetzen?


Funktioniert nicht, wenn Sie den Verzeichnisnamen in einem Dateisystem ohne Berücksichtigung der Groß- und Kleinschreibung (wahrscheinlich unter MacOS) großschreiben möchten. mv -T $PWD/analisys $PWD/Analisyskehrt zurück mv: '/Users/sixtykeys/Projects/murphy/tmp/analisys' and '/Users/sixtykeys/Projects/murphy/tmp/Analisys' are the same file. Ich habe das umgangen, indem ich einen Zwischennamen (dh analisys_) verwendet habe.
Basilikode

Der Befehl war möglicherweise aufgrund der Einschränkungen des Dateisystems nicht erfolgreich, aber aus einer anderen Perspektive konnte er Ihre Absichten erfolgreich interpretieren (ein Verzeichnis umbenennen, nicht verschieben) :)
bmaupin

hast du das probiert
Mahmoud S. Marwad

5

Wenn Sie ein Verzeichnis auf Ihrer Ebene im Dateisystem umbenennen möchten (z. B. befinden Sie sich in Ihrem Ausgangsverzeichnis und möchten ein Verzeichnis umbenennen, das sich auch in Ihrem Ausgangsverzeichnis befindet):

mv Directory ./NewNameDirectory

4

Dieser gvfs-moveBefehl benennt auch Dateien und Verzeichnisse um.

gvfs-move /home/user/oldname /home/user/newname

3

gvfs-rename benennt auch Verzeichnisse um. Es wird ein Fehler ausgegeben, wenn bereits ein Verzeichnis mit dem neuen Namen existiert. Die einzige Einschränkung ist, dass Sie keinen Pfad mit dem Ordnernamen verwenden können. Damit

gvfs-rename /home/boo /home/boo-the-dog 

wird nicht funktionieren, aber

cd /home 
gvfs-rename boo boo-the-dog 

wird funktionieren. Nicht so nützlich wie MV-T, aber ich habe in dem Mann gelesen, dass es für den Netzwerkbetrieb gedacht war.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.