
Eu tenho um executável que cria um file1
ou file2
outro arquivo. Estou tentando escrever um script de shell que deve gerar o último arquivo criado. Se o executável for criado file1
, a saída deverá ser file1
. Observe que já tenho os dois file1
e file2
existe no diretório junto com outros arquivos. O executável o substitui. Se não existir arquivo1/arquivo2, o script abaixo funciona, mas não funciona se ambos file1
existirem file2
.
if [ -e "file1" ]; then
output="file1"
else
output="file2"
fi
Responder1
A maneira rápida e fácil.
output="$(ls -td control.tk input.scs 2> /dev/null|head -1)"
No entanto, eu só usaria isso se você pudesse ter certeza de que os arquivos não contêm caracteres engraçados, como novas linhas ou espaços. Se você puder garantir que os nomes dos arquivos não contêm caracteres engraçados, a análise ls
é bastante segura.