Automatizando a transferência de arquivos de várias pastas de origem para uma pasta de destino

2

Eu preciso mover arquivos diferentes de pastas diferentes para uma nova pasta usando uma linha de comando. Os arquivos compartilham o mesmo formato .asc : por exemplo, existem arquivos 20file1.asc , 20file2.asc e 20file3.asc existentes em folder1 , folder2 e folder3 , respectivamente. Eu simplesmente preciso mover o .asc de todas as pastas para a nova pasta que é folder4 . Cada pasta é nomeada seguindo um esquema yyyymmdd .

Obrigado

    
por Omar Ali 29.02.2016 / 11:27

2 respostas

0

Eu usaria script simples para isso, como este:

for x in {folder1,folder2,folder3}; do mv $x/*.asc folder4/; done

Este script assume que você está no caminho que contém folder1, folder2, folder3. Você pode ajustá-lo às suas necessidades.

Para todas as pastas em um lugar específico, você pode fazer:

ls -1 >> file
for x in 'cat file'; do mv $x/*.asc folder4/; done

Mas esteja ciente de que ls -1 também conterá arquivos e se também houver arquivos nessa pasta, você receberá erros para esses arquivos, dizendo que o caminho não existe.

    
por tymik 29.02.2016 / 11:37
0

Supondo que todas as pastas de origem estejam no mesmo caminho de diretório, você pode usar o seguinte script bash:

ls -1 >> sources
for x in 'cat sources'; do mv $x/*.asc target/; done
rm sources

Salve-o na sua pasta principal com name.sh e, em seguida, execute

$ sh name.sh

para fazer o trabalho automaticamente.

    
por Filippo De Bortoli 29.02.2016 / 12:24