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 ?
Pour moi,
shopt -s globstar
cp src/**/*.so dst
ne copie pas les fichiers .so
directement dans src. Cela le fait :
shopt -s globstar
cp src/**/*.so dst
cp src/*.so dst
ou cela
shopt -s globstar
cp src/{**/*,*}.so dst
Mais cela résout le problème de copier les choses directement dans dst, sans préserver les chemins.
Pour copier à partir d'un chemin absolu, j'ai dû ajouter une commande sed
.
Aussi, comme --parent
ne fonctionnait pas correctement (cp: with --parents, the destination must be a directory
), j'ai dû créer d'abord les dossiers.
find /root/src/ -type f \
| grep -i so$ \
| sed "s|^/root/src/||" \
| sed "s|/\([^/]*\)so$||" \
| xargs -i mkdir --parents /root/dst/{}
find /root/src/ -type f \
| grep -i so$ \
| sed "s|^/root/src/||" \
| xargs -i cp /root/src/{} /root/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.