
Tengo una carpeta con unas 20 subcarpetas, cada una con entre 10 y 15 subcarpetas. ¿Hay alguna manera de usar CLI para mover solo archivos PDF a una nueva carpeta?
Respuesta1
Para copiar solo archivos PDF de todos los subdirectorios, escriba:
rsync -rv --include '*/' --include '*.pdf' --exclude '*' /path/to/parent/source/directory/ /path/to/Destination/directory
Respuesta2
Puedes usarlo cp
con bash globstar
habilitado (veresta pregunta de U&L sobre globos recursivos):
shopt -s globstar
cp some/folder/**/*.pdf target/folder
O, find
:
find some/folder -iname '*.pdf' -exec cp -t target/folder {} +
Respuesta3
find
con -exec
bandera es apropiado para eso. Por defecto es recursivo y desciende a subcarpetas.
Si quisiera mover todos los archivos png de Descargas a la carpeta Descargas/PNG, haría esto:
find $HOME/Downloads -type f -iname "*.png" -exec mv -t $HOME/Downloads/PNG {} +
En tu caso,
find /path/to/top/folder -type f -iname "*.pdf" -exec mv -t /some/other/place {} +