#!/bin/bash
for szFile in /var/tmp/*.zip;
do
unzip "$szFile";
mv "$szFile" "Prefix_"$(basename -- "$szFile")
done
irá:
- iterar todos os arquivos
zip
em/var/tmp
- extraia-os
- adicione um prefixo
- mova-os para o diretório atual.
Aqui está a lista de arquivos em um determinado diretório;
a_object_1.0.zip
file_name_conf_1.1.zip
anim_dup_1.1.zip
Iterar os arquivos em um determinado diretório e verificar se o arquivo corresponde ao padrão de arquivo da lista de arquivos, descompactar e renomear cada arquivo com algum prefixo ( cx_a_object_1.0.zip, cx_file_name_conf_1.1.zip, anim_anim_dup_1.1.zip
)
#!/bin/bash
for szFile in /var/tmp/*.zip;
do
unzip "$szFile";
mv "$szFile" "Prefix_"$(basename -- "$szFile")
done
irá:
zip
em /var/tmp
Aqui está um exemplo usando o find.
find somedir/ -type f -name 'some.zip' -exec bash -c 'name=$1; echo unzip "$name" -d "${name%/*}"; echo mv "$name" "${name%%/*}/cx_c_${name##*/}"' _ {} \;
Remova echo
quando estiver satisfeito com o resultado
Ou crie uma função com um argumento local e passe o nome do arquivo como argumento para a função da seguinte forma:
cfind() {
local name=$1
find somedir/ -type f -name "$name" -exec bash -c 'name=$1; echo unzip "$name" -d "${name%/*}"; echo mv "$name" "${name%%/*}/cx_c_${name##*/}"' _ {} \;
}
Chame como
cfind myfilename.zip
Tags python shell-script