Supondo que você queira localizar todos os arquivos .zip
no diretório atual ou abaixo dele e verifique se há algo com o mesmo nome, mas sem o sufixo .zip
do nome do arquivo:
find . -type f -iname '*.zip' -exec sh -c '
for a do
n="${a%.zip}"
[ -e "$n" ] && printf "%s\n" "$n"
done' sh {} +
Com um diretório contendo
file
file.zip
file2.zip
file3
file3.zip
o comando acima produziria
./file
./file3
Isso é feito procurando todos os arquivos .zip
e, para todos os arquivos encontrados, é executado um script de shell curto que retira a extensão de cada nome e verifica se esse novo nome existe ou não.
Alternativamente, um pouco mais curto,
find . -iname '*.zip' -exec sh -c '[ -e "${0%.zip}" ]' {} ';' -print
Isso também usa um script de shell auxiliar, mas está apenas testando a existência do nome do arquivo sem o sufixo .zip
. Se existir um nome sem sufixo, o nome do caminho do arquivo zip será enviado.
Também possivelmente relevante: