Как вывести последний созданный файл в оболочке

Как вывести последний созданный файл в оболочке

У меня есть исполняемый файл, который создает либо , file1либо file2вместе с другими файлами. Я пытаюсь написать скрипт оболочки, который должен выводить последний созданный файл. Если исполняемый файл создает file1, вывод должен быть file1. Обратите внимание, что у меня уже есть оба file1и file2существует в каталоге вместе с другими файлами. Исполняемый файл перезаписывает его. Если не существует file1/file2, следующий скрипт работает, но это не работает, если существуют оба file1и .file2

if [ -e "file1" ]; then
   output="file1"
else
   output="file2"
fi

решение1

Быстрый и простой способ.

output="$(ls -td control.tk input.scs 2> /dev/null|head -1)"

Однако я бы использовал это только если вы можете быть уверены, что файлы не содержат забавных символов, таких как переводы строк или пробелы. Если вы можете гарантировать, что имена файлов не содержат забавных символов, то парсинг lsвполне безопасен.

Связанный контент