Frage Wie benenne ich ein Verzeichnis über die Befehlszeile?


Ich habe das Verzeichnis /home/user/oldname und ich möchte es in umbenennen /home/user/newname. Wie kann ich das in einem Terminal machen?


473
2017-08-08 16:58


Ursprung


Siehe auch: Wie man ein Verzeichnis verschiebt - kenorb
Benutze immer mv oder rename. - John Strood


Antworten:


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

619
2017-08-08 17:10



verbunden brighthub.com/computing/linux/articles/20667.aspx - N.N.
Cooler Artikel. Das ist genau der Punkt. - Rafał Cieślak
Dies funktioniert nicht, wenn der neue Name bereits ein vorhandenes Verzeichnis ist. Stattdessen wird das alte Verzeichnis in das neue Verzeichnis verschoben. - cxrodgers
Wenn der Verzeichnisname derselbe ist wie die Großschreibung, erhalten Sie No such file or directory. Um dies zu vermeiden, tun Sie etwas wie mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder. - DutGRIFF
@cxrodgers: bestehen --no-target-directory (-T), um zu vermeiden, zu behandeln newname als Zielverzeichnis. - jfs


mv kann zwei Jobs machen.

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

Um nur eine Datei oder ein Verzeichnis umzubenennen, geben Sie Folgendes 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 

Es wird die Datei auf den Desktop verschieben.

Wenn es ein Verzeichnis ist, das du hinzufügen solltest -R vor dem Verzeichnisnamen:

mv -R directory_name ~/Desktop

104
2018-04-21 13:58



mv auf Ubuntu ist von GNU Coreutils. AFAICT es hat keine -R Option, noch ist es notwendig, wenn ein Verzeichnis verschoben wird. - arielf
-r funktioniert nicht einmal - user1735921
Die richtige Option ist -T. Siehe @ bmaupin's Antworten für sein Verhalten. - chronometric


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

Das wird das Verzeichnis umbenennen, wenn das Ziel nicht existiert oder wenn es existiert, aber es ist leer. Sonst wird es Ihnen einen Fehler geben.

Wenn Sie dies stattdessen tun:

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

Eines von zwei Dingen wird passieren:

  • Ob /home/user/newname existiert nicht, es wird umbenannt /home/user/oldname zu /home/user/newname
  • Ob /home/user/newname existiert, wird es sich bewegen /home/user/oldname in /home/user/newname, d.h. /home/user/newname/oldname

Quelle: Wie kann man entscheiden, dass sich mv in ein Verzeichnis bewegt und nicht das Verzeichnis ersetzt?


27
2018-04-27 18:31





Dies gvfs-move Befehl wird auch Dateien und Verzeichnisse umbenennen.

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

4
2018-04-21 05:26





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

mv Directory ./NewNameDirectory

4
2017-07-12 13:26





gvfs-rename wird auch Verzeichnisse umbenennen. Es wird ein Fehler ausgegeben, wenn bereits ein Verzeichnis mit dem neuen Namen existiert. Die einzige Einschränkung besteht darin, 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 Netzwerkoperationen gedacht war.


1
2017-11-29 07:58