
Eu tenho uma pasta com cerca de 20 subpastas, cada uma com 10 a 15 subpastas. Existe uma maneira de usar CLI para mover apenas arquivos PDF para uma nova pasta?
Responder1
Para copiar apenas PDFs de todos os subdiretórios, digite:
rsync -rv --include '*/' --include '*.pdf' --exclude '*' /path/to/parent/source/directory/ /path/to/Destination/directory
Responder2
Você pode usar cp
com o bash globstar
habilitado (vejaesta pergunta U&L sobre globos recursivos):
shopt -s globstar
cp some/folder/**/*.pdf target/folder
Ou, find
:
find some/folder -iname '*.pdf' -exec cp -t target/folder {} +
Responder3
find
com -exec
flag é apropriado para isso. Por padrão, é recursivo e desce em subpastas
Se eu quisesse mover todos os arquivos png da pasta Downloads para a pasta Downloads/PNG, faria o seguinte:
find $HOME/Downloads -type f -iname "*.png" -exec mv -t $HOME/Downloads/PNG {} +
No seu caso,
find /path/to/top/folder -type f -iname "*.pdf" -exec mv -t /some/other/place {} +