
Tengo un ejecutable que crea uno file1
o file2
junto con otros archivos. Estoy intentando escribir un script de shell que debería generar el último archivo creado. Si el ejecutable crea file1
, la salida debería ser file1
. Tenga en cuenta que ya tengo ambos file1
y file2
existen en el directorio junto con otros archivos. El ejecutable lo sobrescribe. Si no existe ningún archivo1/archivo2, el siguiente script funciona, pero esto no funciona si ambos file1
y file2
existen.
if [ -e "file1" ]; then
output="file1"
else
output="file2"
fi
Respuesta1
La forma fácil y rápida.
output="$(ls -td control.tk input.scs 2> /dev/null|head -1)"
Sin embargo, sólo usaría esto si puedes asegurarte de que los archivos no contengan caracteres divertidos como nuevas líneas o espacios. Si puede garantizar que los nombres de los archivos no contengan caracteres divertidos, entonces el análisis ls
es bastante seguro.