Si je voulais copier tous les fichiers *.so
de src
vers dst
, je ferais :
cp src/*.so dst
Cependant, je veux copier tous les fichiers *.so
de src et de sous-répertoires dans dst
. Des idées ?
Si je voulais copier tous les fichiers *.so
de src
vers dst
, je ferais :
cp src/*.so dst
Cependant, je veux copier tous les fichiers *.so
de src et de sous-répertoires dans dst
. Des idées ?
Si vous utilisez Bash, vous pouvez activer l'option de shell globstar
pour faire correspondre des fichiers et des 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 des répertoires dont les noms commencent par .
, activez également l'option dotglob
(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 abouti à jeter 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 ceci :
find src/ -type f | grep -i so$ | xargs -i cp {} dst/{}
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.