在shell中查找最后更新的文件,不包括目录

时间:2018-12-27 08:07:12

标签: shell automation

嗨, 我是刚接触Shell的人。在StackOverflow中搜索时,我发现了一个代码,该代码在包含子目录的目录中找到了最后更新的文件。

find $path -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2 | tail -n

我的要求是在目录中找到最后更新的文件,但不在子目录中

该目录包含CSV格式的文件和3个子目录,是否可以修改此现有代码?或使用CSV标记进行搜索,以便仅检查CSV文件,而不检查子目录(子目录还包含.csv文件)。

谢谢

1 个答案:

答案 0 :(得分:1)

find 命令与 maxdepth 1 参数一起使用,它将不会搜索子目录。
然后,您可以使用 -exec 添加将针对匹配文件运行的命令。
最后,使用 tail -1 获取最新的文件名,并使用 basename 从完整路径中提取文件名。

这是一个例子,

basename $(find $Path -maxdepth 1 -name '*.csv' -exec ls -t {} \;  | tail -1)