web-dev-qa-db-fra.com

Comment copier uniquement des pdf à partir de dossiers et de sous-dossiers?

J'ai un dossier avec environ 20 sous-dossiers, chacun avec 10-15 sous-dossiers. Existe-t-il un moyen d'utiliser CLI pour déplacer uniquement les fichiers PDf dans un nouveau dossier?

3
simple mind

Pour copier uniquement les fichiers PDF de tous les sous-répertoires, tapez:

rsync -rv --include '*/' --include '*.pdf' --exclude '*' /path/to/parent/source/directory/ /path/to/Destination/directory
3
Raphael

Vous pouvez utiliser cp avec l'option globstar de bash activée (voir cette question U & L sur les globes récursifs ):

shopt -s globstar 
cp some/folder/**/*.pdf target/folder

Ou, find:

find some/folder -iname '*.pdf' -exec cp -t target/folder {} +
4
muru

find avec le drapeau -exec convient pour cela. Il est par défaut récursif et descend dans les sous-dossiers

Si je voulais déplacer tous les fichiers png du dossier Téléchargements vers le dossier Téléchargements/PNG, je le ferais: find $HOME/Downloads -type f -iname "*.png" -exec mv -t $HOME/Downloads/PNG {} +

Dans ton cas,

find /path/to/top/folder -type f -iname "*.pdf" -exec mv -t /some/other/place {} +

2