197 votes

Comment déplacer plusieurs fichiers à la fois vers un répertoire de destination spécifique ?

J'ai un tas de fichiers dans un répertoire (ainsi que de nombreux autres fichiers) que je veux déplacer.

Heureusement, tous les fichiers que je veux déplacer contiennent un certain identifiant dans leur nom, je peux donc ls | grep IDENTIFIER pour obtenir la liste exacte des fichiers à déplacer.

Mais, comment puis-je exécuter mv file /path/to/dest/folder/ en une seule fois, et non pas un par un (il y a beaucoup de fichiers à déplacer) ?

271voto

tuomaz Points 2743

Vous pourriez utiliser :

mv -t DESTINATION file1 file2 file3

La méthode suivante fonctionne également, mais je ne suis pas sûr qu'elle puisse être utilisée. mv est invoqué plusieurs fois ou non, comme grep produira une nouvelle ligne pour chaque correspondance :

mv -t DESTINATION  `ls|grep IDENTIFIER`

122voto

Evandro Silva Points 8912

Si vous voulez bouger ABC-IDENTIFIER-XYZ.ext o IDENTIFIER-XYZ.xml vous pouvez l'utiliser :

mv *IDENTIFIER* ~/YourPath/

* est un joker pour zéro ou plusieurs caractères ce qui signifie zéro ou plusieurs caractères suivi par IDENTIFIER suivi par zéro ou plusieurs caractères .

Cela va déplacer tous les fichiers qui contiennent le site IDENTIFIER que vous avez spécifié.

31voto

Achu Points 20537

Vous pouvez utiliser caractères de remplacement .

Par exemple, pour déplacer tous les fichiers ayant un .doc extension :

mv *.doc /path/to/dest/folder/

Ceci déplacera tous les fichiers doc sous le répertoire actuel vers la destination spécifique.

Editar

Pour répondre au commentaire :

mais la liste des fichiers à déplacer n'est pas déterminée par l'extension. Certains des fichiers sont nommés : ABC-IDENTIFIER-XYZ.ext et d'autres simplement IDENTIFIER-XYZ.ext ayant toutes des extensions différentes, la plupart xml o properties .

mv *.ext  *.xml *.txt /path/to/dest/folder/

29voto

Ismail AL-taharwa Points 391

Si vous voulez déplacer un ensemble de fichiers arbitraires (sans modèle commun dans les noms et les types), vous pouvez faire comme M. Rajanand a dit : allez d'abord dans le répertoire qui contient les fichiers que vous voulez déplacer

mv file1.ext1 file2.ext2 file3.ext3 /destination/

Si les fichiers sont dispersés dans différents répertoires, il suffit de spécifier le chemin d'accès de chaque fichier dans le champ mv commandement.

12voto

keruilin Points 1024

J'utilise la technique de Tuomaz, mais légèrement modifiée :

mv file1 file2 file3 -t DESTINATION

Je trouve que c'est plus facile à mémoriser et plus difficile de se tromper puisque cela utilise le même ordre que l'opération mv classique :

mv file1 DESTINATION

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