GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher et copier certains types de fichiers d'un répertoire à un autre sous Linux

Mon disque dur externe est en désordre. Ouais parce que j'ai vidé tous les fichiers dans un seul répertoire. J'étais tout simplement trop paresseux pour organiser les fichiers et les dossiers dans le bon ordre. Cela me prenait plus de temps lorsque je cherchais un fichier en particulier. Donc, j'ai pensé que ce serait bien mieux si j'organisais certains types de fichiers dans des répertoires séparés. J'ai décidé de créer des dossiers pour chaque type de fichier et de stocker les fichiers dans les dossiers respectifs. Supposons, par exemple, que tous les fichiers multimédias (audio et vidéo) doivent aller dans un répertoire appelé Multimédia , fichiers image vers Images dossier et les éléments officiels associés dans un dossier appelé ostechnix .

Cependant, rechercher et copier manuellement un type particulier de fichier est une tâche fastidieuse et chronophage. Il faudra des heures pour trouver et copier tous les fichiers si vous avez un grand nombre de fichiers. J'ai donc fait une recherche rapide sur Google et j'ai trouvé une solution appropriée. Si vous avez déjà voulu copier certains types de fichiers d'un répertoire à un autre dans des systèmes d'exploitation de type Unix, voici une façon de le faire. Il peut y avoir plusieurs façons de procéder, mais j'ai trouvé que la méthode suivante est facile et simple à suivre.

Rechercher et copier certains types de fichiers d'un répertoire à un autre sous Linux

Nous allons utiliser la commande 'find' pour organiser les fichiers. La commande Find est préinstallée sur la plupart des distributions de type Unix, alors ne nous embêtons pas à l'installer. Pour les besoins de ce guide, je vais montrer comment trouver et copier rapidement des fichiers mp3 à partir d'un répertoire appelé test1 vers un autre répertoire appelé test2 .

Télécharger - Ebook gratuit :"Beyond Linux® From Scratch - Version 6.3"

Vérifions le contenu du répertoire test.

$ ls /home/sk/test1

Exemple de résultat :

'Bombay Rockers.mp3' 'Marconi Union - Sleepless.mp3' wiua9.jpg
 books.txt Maruvaarthai.mp3

Comme vous le voyez dans le résultat ci-dessus, il y a trois fichiers mp3 dans le répertoire test1. Copions ces fichiers mp3 dans le répertoire test2. Pour ce faire, accédez au répertoire test1 à l'aide de la commande :

$ cd /home/sk/test1/

Ensuite, exécutez la commande suivante pour rechercher et copier tous les fichiers correspondant à l'extension .mp3 .

$ find -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

Décomposons la commande ci-dessus et voyons ce que fait chaque option.

  • trouver - C'est la commande pour trouver des fichiers et des dossiers dans des systèmes de type Unix.
  • -iname '*.mp3' - Rechercher des fichiers correspondant à l'extension .mp3.
  • -exec cp - Vous demande d'exécuter la commande 'cp' pour copier les fichiers du répertoire source vers le répertoire de destination.
  • {} - est automatiquement remplacé par le nom de fichier des fichiers trouvés par la commande 'find'.
  • /home/sk/test2/ - Répertoire cible pour enregistrer les fichiers correspondants.
  • \; - lui indique que les commandes à exécuter sont maintenant terminées, et d'exécuter à nouveau la commande au prochain match.

Dégager? Bon! Maintenant, vérifions le répertoire test2 pour vérifier si les fichiers ont été copiés correctement.

$ ls /home/sk/test2

Exemple de sortie :

'Bombay Rockers.mp3' Maruvaarthai.mp3
'Marconi Union - Sleepless.mp3'

Comme vous pouvez le voir, tous les fichiers avec l'extension .mp3 ont été copiés du répertoire test1 au répertoire test2. De même, vous pouvez copier d'autres types de fichiers dans différents répertoires de votre choix, comme décrit ci-dessus.

La commande ci-dessus copiera également tous les fichiers *.mp3 du répertoire source et de ses sous-répertoires. Si vous ne voulez pas faire cela, utilisez -maxdepth drapeau. Par exemple, la commande suivante copiera tous les fichiers .mp3 du répertoire source uniquement, mais pas de ses sous-répertoires.

$ find -maxdepth 1 -iname '*.mp3' -exec cp {} /home/sk/test2/ \;

De cette façon, vous pouvez gagner beaucoup de temps lorsque vous souhaitez rechercher un type de fichier particulier. Cette astuce peut être utile lorsque vous devez transférer une grande quantité de différents types de fichiers d'un répertoire à un autre.

Lire connexe :

  • Copier des types de fichiers spécifiques tout en conservant la structure des répertoires sous Linux

Pour plus de détails, consultez les pages de manuel.

$ man find

Il existe également un script nommé 'Classifier' qui organisera automatiquement vos fichiers en fonction de l'extension de fichier dans différents répertoires. Plus de détails peuvent être trouvés dans le lien ci-dessous.

  • Comment organiser automatiquement des types de fichiers similaires dans des dossiers spécifiques

J'espère que cela vous aidera.


Linux
  1. Comment déplacer tous les fichiers (y compris cachés) d'un répertoire à un autre ?

  2. Utilisez Rechercher pour trouver certains répertoires et supprimer tous les fichiers qu'il contient sauf un répertoire ?

  3. Copier la structure des dossiers (sans fichiers) d'un emplacement à un autre

  4. Comment déplacer (et écraser) tous les fichiers d'un répertoire à un autre ?

  5. Comment renommer plusieurs fichiers d'une extension à une autre sous Linux/Unix ?

Comment copier des fichiers et des répertoires sous Linux

Comment compter les fichiers dans le répertoire sous Linux

Comment rechercher et supprimer des fichiers en double sous Linux

Comment trouver des fichiers en double sous Linux et les supprimer

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment copier un fichier d'un autre répertoire vers celui en cours ?