У меня есть папка приблизительно с 20 подпапками, каждый с 10-15 подпапками. Существует ли путь, с помощью CLI для перемещения только файлов PDF в новую папку?
Чтобы скопировать только pdfs со всех подкаталогов, напечатайте:
rsync -rv --include '*/' --include '*.pdf' --exclude '*' /path/to/parent/source/directory/ /path/to/Destination/directory
Вы можете использовать cp
с ударом globstar
, позволил (см. этот U& L вопрос на рекурсивных шариках ):
shopt -s globstar
cp some/folder/**/*.pdf target/folder
Или, find
:
find some/folder -iname '*.pdf' -exec cp -t target/folder {} +
find
с -exec
флаг подходит для этого. Это по умолчанию рекурсивно и спускается в подпапки
, Если бы я хотел переместить все png файлы от Загрузок до папки Downloads/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 {} +