como copiar somente pdf de pastas e subpastas?

3

Eu tenho uma pasta com cerca de 20 subpastas, cada uma com 10-15 subpastas. Existe uma maneira, usando o CLI para mover apenas arquivos PDF para uma nova pasta?

    
por simple mind 10.11.2015 / 19:32

3 respostas

2

Para copiar apenas os PDFs de todos os subdiretórios, digite:

rsync -rv --include '*/' --include '*.pdf' --exclude '*' /path/to/parent/source/directory/ /path/to/Destination/directory
    
por Raphael 10.11.2015 / 19:40
4

Você pode usar cp com globstar ativado do bash (consulte esta pergunta sobre globos recursivos ):

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

Ou, find :

find some/folder -iname '*.pdf' -exec cp -t target/folder {} +
    
por muru 10.11.2015 / 19:41
2

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 Downloads / PNG, eu 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 {} +

    
por Sergiy Kolodyazhnyy 10.11.2015 / 19:46