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) ?

11voto

Sruli Points 195

Si les fichiers sont dans le même répertoire, vous pouvez utiliser

mv /path/to/source/dir/{file1,file2,*.ext1,*.ext2} /path/to/destination/

(testé dans Ubuntu 16.04)

6voto

ignite Points 8446

Utilisez cette commande :

mv `ls|grep IDENTIFIER` /path/to/dest/folder  

Cependant, ls n'est pas recommandé pour ce genre d'utilisation. Utiliser trouver à la place.

5voto

user734124 Points 51
find -type f -name "[range]" -exec mv {} target-directory ';'

cette commande déplacera les noms de fichiers avec n'importe quel motif/plage vers le répertoire cible.

eg.

find -type f -name "file[1-50000]" -exec mv {} target-directory ';'

il déplacera les fichiers avec des noms comme file1 , file2 ... file50000 a target-directory .

4voto

AggieBill Points 75

Si vous avez beaucoup de fichiers à déplacer, vous risquez d'en avoir trop pour le système de gestion de l'information. mv (ou d'autres commandes comme rm ). Je suggère d'utiliser xargs pour déplacer chaque fichier individuellement dans une sorte de boucle. Une façon de contourner cela est de faire :

ls -1 | grep IDENTIFIER | xargs -i mv {} /path/to/dest/folder/

El ls -1 (moins un) garantit qu'il n'y a qu'un seul nom de fichier sur chaque ligne. Si vous avez des alias cachés pour l'option ls vous pouvez avoir plusieurs noms de fichiers sur une seule ligne et déplacer par inadvertance un fichier que vous n'aviez pas l'intention de déplacer.

4voto

Sabrina Points 1583

La méthode la plus simple est la suivante

mv {file1,file2,file3} DESTINATION

ou répertoire

mv {directory1,directory2,directory3} DESTINATION

ou à la fois des fichiers et des répertoires

mv {file1,file2,file3,directory1,directory2,directory3} DESTINATION

J'espère que cela vous aidera

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