Question Comment renommer un répertoire via la ligne de commande?


J'ai le répertoire /home/user/oldname et je veux le renommer en /home/user/newname. Comment puis-je le faire dans un terminal?


473
2017-08-08 16:58


origine


Voir également: Comment déplacer un répertoire - kenorb
Utiliser toujours mv ou rename. - John Strood


Réponses:


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

619
2017-08-08 17:10



en relation brighthub.com/computing/linux/articles/20667.aspx - N.N.
Article cool. C'est exactement le but. - Rafał Cieślak
Cela ne fonctionnera pas si le nouveau nom est déjà un répertoire existant. Au lieu de cela, il déplacera l'ancien répertoire à l'intérieur du nouveau. - cxrodgers
Si le nom du répertoire est le même avec la capitalisation, vous obtiendrez No such file or directory. Pour éviter cela, faites quelque chose comme mv /home/user/Folder /home/user/temp; mv /home/user/temp/ /home/user/folder. - DutGRIFF
@cxrodgers: passer --no-target-directory (-T), pour éviter de traiter newname en tant que répertoire cible. - jfs


mv peut faire deux emplois.

  1. Il peut déplacer des fichiers ou des répertoires
  2. Il peut renommer des fichiers ou des répertoires

Pour simplement renommer un fichier ou un répertoire, tapez ceci dans Terminal:

mv old_name new_name 

avec un espace entre l'ancien et le nouveau nom.

Pour déplacer un fichier ou un répertoire, tapez ceci dans Terminal.

mv file_name ~/Desktop 

il déplacera le fichier sur le bureau.

Si un répertoire est à ajouter -R avant le nom du répertoire:

mv -R directory_name ~/Desktop

104
2018-04-21 13:58



mv sur Ubuntu provient de GNU coreutils. AFAICT n'a pas de -R option, ni il est nécessaire lors du déplacement d'un répertoire. - arielf
-r ne fonctionne même pas - user1735921
La bonne option est -T. Voir @ bmaupin répondre pour son comportement. - chronometric


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

Cela va renommer le répertoire si la destination n'existe pas ou si elle existe mais elle est vide. Sinon, cela vous donnera une erreur.

Si vous faites cela à la place:

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

Une des deux choses se produira:

  • Si /home/user/newname n'existe pas, il renommera /home/user/oldname à /home/user/newname
  • Si /home/user/newname existe, ça bougera /home/user/oldname dans /home/user/newname, c'est à dire. /home/user/newname/oldname

La source: Comment décider que mv se déplace dans un répertoire plutôt que de remplacer le répertoire?


27
2018-04-27 18:31





Ce gvfs-move commande renomme également les fichiers et les répertoires.

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

4
2018-04-21 05:26





Si vous souhaitez renommer un répertoire à votre niveau dans le système de fichiers (par exemple, vous vous trouvez dans votre répertoire personnel et souhaitez renommer un répertoire qui se trouve également dans votre répertoire personnel):

mv Directory ./NewNameDirectory

4
2017-07-12 13:26





gvfs-rename renommera aussi les répertoires. Cela donnera une erreur si un répertoire avec le nouveau nom existe déjà. La seule limitation est que vous ne pouvez pas utiliser un chemin avec le nom du dossier. Alors

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

ne fonctionnera pas, mais

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

marchera. Pas aussi utile que mv -T mais j'ai lu dans l'homme qu'il était destiné aux opérations réseau.


1
2017-11-29 07:58