如何在shell中输出最新创建的文件

如何在shell中输出最新创建的文件

我有一个可执行文件,可以创建其中一个文件file1file2与其他文件一起创建。我正在尝试编写一个 shell 脚本,它应该输出最新创建的文件。如果可执行文件创建file1,输出应该是file1.请注意,我已经拥有这两个文件file1file2与其他文件一起存在于目录中。可执行文件会覆盖它。如果不存在 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就非常安全。

相关内容