388 votes

Comment déplacer tous les fichiers d'un dossier à un autre en utilisant la ligne de commande ?

Je voudrais savoir comment déplacer tous les fichiers d'un dossier vers un autre dossier avec une ligne de commande.

Disons que je suis dans mon dossier Téléchargements et qu'il y a une centaine de fichiers que je voudrais déplacer vers mon dossier Vidéos, sans avoir à écrire tous les noms de fichiers.

494voto

Anwar Points 72431

Ouvrez un terminal et exécutez cette commande :

mv  -v ~/Downloads/* ~/Videos/

Il déplacera tous les fichiers et dossiers du dossier Téléchargements vers le dossier Vidéos.


Pour déplacer tous les fichiers, mais pas les dossiers :

Si vous souhaitez déplacer tous les fichiers (mais pas les dossiers) du dossier Downloads vers le dossier Videos, utilisez cette commande

find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos

Pour déplacer uniquement les fichiers des dossiers de téléchargement, mais pas ceux des sous-dossiers :

Si vous voulez déplacer tous les fichiers du dossier Téléchargements, mais pas les fichiers contenus dans les dossiers du dossier Téléchargements, utilisez cette commande :

find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos

ici, -maxdepth spécifie la profondeur à laquelle find doit essayer, 1 signifie, seulement le répertoire spécifié dans la commande find. Vous pouvez essayer d'utiliser 2 , 3 également à tester.

Voir le site Ubuntu trouver la page de manuel pour une explication détaillée

42voto

user223289 Points 429
mv ~/Downloads/* ~/Videos

Il déplacera tous les fichiers, y compris les sous-dossiers, dans le répertoire que vous souhaitez déplacer. mv . Si vous voulez cp (copie) ou rm (enlever), vous aurez besoin du -r (récursif) pour inclure les sous-dossiers.

33voto

Ch'marr Points 604

Pour le cas simple :

mv ~/Downloads/* ~/Videos

Si vous souhaitez également déplacer les fichiers dot (cachés), définissez l'attribut dotglob Option Shell.

shopt -s dotglob
mv ~/Downloads/* ~/Videos

Cela laisse l'option Shell définie.

Pour une utilisation ponctuelle de dotglob, exécutez les commandes dans un sous-shell :

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

19voto

kenorb Points 8840

C'est possible en utilisant rsync par exemple :

rsync -vau --remove-source-files src/ dst/

où :

-v , --verbose : Augmenter la verbosité.

-a , --archive : Mode archive ; égale -rlptgoD (non -H , -A , -X ).

-u , --update : Sauter les fichiers qui sont plus récents sur le récepteur.

--remove-source-files Cela dit rsync pour retirer du côté de l'envoi les fichiers (c'est-à-dire les non-répertoires) qui font partie du transfert et qui ont été dupliqués avec succès du côté récepteur.

Si vous avez les privilèges de root, préfixez avec sudo pour contourner les problèmes d'autorisation potentiels.

9voto

Feyisayo Sonubi Points 353

Pour déplacer un répertoire avec ou sans contenu vers son nouveau nom, comme vous le feriez avec la commande mv pour renommer un fichier :

mv -T dir1 dir2

où :

  • -T traite la destination comme un fichier normal
  • dir1 est le nom original du répertoire
  • dir2 est le nouveau nom du répertoire

NB: dir2 n'a pas besoin d'exister.

J'espère que cela fera gagner beaucoup de temps à quelqu'un. En tant que novice, avant cela, je créais un répertoire avec le nouveau nom, puis je déplaçais le contenu du répertoire vers le répertoire créé précédemment.

Utilisation pour les sous-répertoires

Cette commande est utile lorsque de nombreux fichiers ont été sauvegardés dans un sous-dossier du répertoire cible, c'est à dire Downloads/mp4 . Dans cet exemple, l'exécution de mv -T Downloads/mp4 Videos aura pour résultat mp4 le sous-dossier étant supprimé et tous les fichiers qu'il contient sont déplacés vers le dossier Videos.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X