Copiando vários arquivos semelhantes de vários subdiretórios

0

Eu tenho cem subdiretórios contendo um arquivo de interesse em cada um dos subdiretórios. Eu quero copiar esses arquivos 100 (* file_of_interest.txt) de interesse para uma nova pasta. Como posso fazer um script de shell?

    
por panbar 03.03.2016 / 00:06

2 respostas

0

Eu faria algo assim:

for i in *; do mv $i/files_of_interest.txt ../new_interest_folder; done

Observe que, se os arquivos de interesse forem conjuntos, como todos os arquivos .png, isso deve funcionar:

for i in *; do mv $i/*.png ../new_png_folder; done

O * after 'in' pode ser substituído por qualquer outro shell glob. Uma ótima maneira de descobrir o que vai acontecer é ecoar as coisas:

for i in *folderx *foldery; do echo mv $i/*.png ../new_png_folder; done

Se isso produzir a lista de comandos que você deseja executar, volte e remova o 'eco' da linha e execute-o novamente.

As globs "* folderx * foldery" produziriam uma lista de todas as pastas que terminam em "folderx" ou "foldery"

    
por 03.03.2016 / 01:18
0

Que tal um script

#! /bin/bash
find /path/to/root -type -f -name "*.txt" -exec cp {} /target/directory \;
    
por 03.03.2016 / 02:08

Tags