Adicionando o nome da pasta aos arquivos .zip dentro dela

2

Eu tenho file1.zip, file2.zip, etc. na pasta chamada folder1. tem pastas semelhantes folder2, folder3, etc.

Eu preciso adicionar o nome da pasta a cada arquivo .zip dentro dessas pastas.

Assim, os arquivos dentro de folder1 serão folder1_file1.zip, folder1_file2.zip, folder1_file3.zip, etc.

Da mesma forma, os arquivos folder2 serão folder2_file1.zip, folder2_file2.zip, folder2_file2.zip, etc.

Muito obrigado!

    
por Krishna 08.02.2016 / 18:07

1 resposta

1

Então, rodando este script dentro do diretório que tem folder1 , folder2 , folder3 , etc etc, ele irá olhar dentro de cada pasta e renomear cada arquivo presente no <directory_<filename> .

Eu acredito que isso é o que você estava procurando, deixe-me saber se não é o que você estava procurando.

#!/bin/bash


for x in $(ls 'pwd'); do
        if [ -d $x ]; then
                cd $x
                for f in *; do mv $f ${f/$f/$(basename 'pwd')_$f}; done
                cd ..
        fi
done

É importante notar que isso é indiscriminado em relação aos nomes dos arquivos, se houver arquivos dentro de folder# que você NÃO deseja renomear, você pode mudar a linha

for f in *; do mv $f ${f/$f/$(basename 'pwd')_$f}; done

para:

for f in *pattern_you_are_lookingfor*; do mv $f ${f/$f/$(basename 'pwd')_$f}; done
    
por 08.02.2016 / 18:55