Domanda Come rinominare una directory tramite la riga di comando?


Ho la directory /home/user/oldname e voglio rinominarlo /home/user/newname. Come posso farlo in un terminale?


473
2017-08-08 16:58


origine


Guarda anche: Come spostare una directory - kenorb
Usa sempre mv o rename. - John Strood


risposte:


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

619
2017-08-08 17:10



Relazionato brighthub.com/computing/linux/articles/20667.aspx - N.N.
Articolo interessante. Questo è esattamente il punto. - Rafał Cieślak
Questo non funzionerà se il nuovo nome è già una directory esistente. Invece, sposterà la vecchia directory all'interno di quella nuova. - cxrodgers
Se il nome della directory è lo stesso con maiuscole e minuscole No such file or directory. Per evitare questo, fai qualcosa di simile mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder. - DutGRIFF
@cxrodgers: passaggio --no-target-directory (-T), per evitare di trattare newname come directory di destinazione. - jfs


mv può fare due lavori.

  1. Può spostare file o directory
  2. Può rinominare file o directory

Per rinominare un file o una directory, digita questo nel Terminale:

mv old_name new_name 

con spazio tra il vecchio e il nuovo nome.

Per spostare un file o una directory, digita questo in Terminale.

mv file_name ~/Desktop 

sposterà il file sul desktop.

Se è una directory da aggiungere -R prima del nome della directory:

mv -R directory_name ~/Desktop

104
2018-04-21 13:58



mv su Ubuntu è da GNU coreutils. AFAICT non ha un -R opzione, né è necessario quando si sposta una directory. - arielf
-R non funziona nemmeno - user1735921
L'opzione corretta è -T. Vedi @ bmaupin's risposta per il suo comportamento. - chronometric


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

Questo rinominerà la directory se la destinazione non esiste o se esiste ma è vuota. Altrimenti ti darà un errore.

Se lo fai invece:

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

Una delle due cose succederà:

  • Se /home/user/newname non esiste, verrà rinominato /home/user/oldname a /home/user/newname
  • Se /home/user/newname esiste, si sposterà /home/user/oldname in /home/user/newname, cioè /home/user/newname/oldname

Fonte: Come decidere che mv si sposta in una directory anziché sostituire la directory?


27
2018-04-27 18:31





Questo gvfs-move comando rinominerà anche i file e le directory.

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

4
2018-04-21 05:26





Se vuoi rinominare una directory al tuo livello nel file system (ad esempio, sei nella tua directory home e vuoi rinominare una directory che si trova anche nella tua home directory):

mv Directory ./NewNameDirectory

4
2017-07-12 13:26





gvfs-rename rinominerà anche le directory. Darà un errore se esiste già una directory con il nuovo nome. L'unica limitazione è che non è possibile utilizzare un percorso con il nome della cartella. Così

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

non funzionerà, ma

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

funzionerà. Non utile come mv -T ma ho letto nell'uomo che era pensato per le operazioni di rete.


1
2017-11-29 07:58