как скопировать только pdf из папок и подпапок?

как скопировать только pdf из папок и подпапок?

У меня есть папка с примерно 20 подпапками, каждая с 10-15 подпапками. Есть ли способ, используя CLI, переместить только файлы PDF в новую папку?

решение1

Чтобы скопировать только PDF-файлы из всех подкаталогов, введите:

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

решение2

Вы можете использовать его cpс включенным bash globstar(см.этот вопрос U&L по рекурсивным глобам):

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

Или, find:

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

решение3

findс -execфлагом подходит для этого. По умолчанию он рекурсивен и спускается в подпапки

Если бы я хотел переместить все файлы png из папки «Загрузки» в папку «Загрузки/PNG», я бы сделал следующее: find $HOME/Downloads -type f -iname "*.png" -exec mv -t $HOME/Downloads/PNG {} +

В твоем случае,

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

Связанный контент