GNU/Linux >> Tutoriels Linux >  >> Linux

Copiez tous les fichiers correspondant au modèle du répertoire et des sous-répertoires dans un seul répertoire

Essayez :

find src/ -type f | grep -i so$ | xargs -i cp {} dst

Si vous utilisez Bash, vous pouvez activer le globstar option shell pour faire correspondre les fichiers et les répertoires de manière récursive :

shopt -s globstar
cp src/**/*.so dst

Si vous avez besoin de trouver des fichiers dont les noms commencent par . , et/ou des fichiers dans et sous des répertoires dont les noms commencent par . , définissez le dotglob option également (par exemple, avec shopt -s dotglob ). Vous pouvez les définir tous les deux en une seule commande :

shopt -s globstar dotglob

J'ai essayé la commande suggérée par Mike :

find src/ -type f | grep -i so$ | xargs -i cp {} dst

mais cela a fini par vider tous les fichiers dans le répertoire dst avec leurs chemins relatifs perdus.

Pour conserver les chemins relatifs, la commande doit être modifiée comme suit :

find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}

Linux
  1. Apprenez à copier des fichiers et des dossiers depuis/vers un autre serveur

  2. Rechercher et copier des fichiers

  3. Comment puis-je rechercher de manière récursive tous les fichiers dans les dossiers actuels et les sous-dossiers en fonction de la correspondance générique ?

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

  5. Comment puis-je copier de manière récursive tous les fichiers pdf d'un répertoire (et de ses sous-répertoires) dans un seul répertoire de sortie?

Copier des fichiers entre Linux et FreeDOS

3 façons d'extraire et de copier des fichiers à partir d'une image ISO sous Linux

Comment copier des fichiers et des répertoires sous Linux

Comment utiliser la commande cp pour copier des fichiers et des répertoires

Comment copier des fichiers du dockerfile vers l'hôte ?

Supprimer les fichiers correspondants dans tous les sous-répertoires