Use a opção -n
. Na página de manual do unzip:
Eu tenho um loop for que descompacta todos os .zip
nesse diretório. Eu quero verificar se o arquivo descompactado já existe e fazer a descompactação apenas para os arquivos compactados.
Aqui está o código sem nenhuma instrução if:
for i in 'cat zipfiles.txt'; do
output_dir=$(dirname $i)
unzip -d $output_dir $i
done
zipfiles.txt é como:
./CSAN/S1A.zip
./MEZO/S1B.zip
saída é
./CSAN/S1A.SAFE
./MEZO/S1B.SAFE
Eu tentei adicionar um if
loop, mas ele ainda está perguntando se eu quero substituir o arquivo já existente.
for i in 'cat zipfiles.txt'; do
file="${dir%/}.SAFE"
if [ -e "$file" ]
then
echo "It exists"
else
output_dir=$(dirname $i)
unzip -d $output_dir $i
fi
done
Qual é a boa solução?
Use a opção -n
. Na página de manual do unzip:
Ok, Eu encontrei a solução certa:
for i in 'cat zipfiles.txt'; do
output_dir=$(dirname $i)
echo $output_dir
file="${i/zip/SAFE}"
echo $file
if [ -e "$file" ]
then
echo "It exists"
else
unzip -d $output_dir $i
fi
done