在终端中以递归方式搜索后,按类型(.txt)列出最新文件

时间:2011-06-10 18:55:31

标签: linux terminal find grep ls

我正在尝试让终端返回最新的.txt文件,路径完好无损。我一直在研究ls,grep,find和tail,使用'|'将结果从一个实用程序传递到下一个实用程序的功最终的结果是有一个工作路径+结果,我可以通过我的文本编辑器。

我一直在接近这样的测试: 找 。 | grep'.txt $'|尾巴-1

..但是我没有幸运获得grep返回最新文件 - 是否有一个我失踪的旗帜?

尝试使用find& ls也不完全正常:

找到。 -name“* .txt”| ls -lrth

.. ls返回当前目录,而不是我查找查询的结果。

请帮忙!

4 个答案:

答案 0 :(得分:3)

你非常接近。

vi "$(find . -name '*.txt' -exec ls -t {} + | head -1)"

答案 1 :(得分:2)

find /usr/share -name '*.txt' -printf '%C+ %p\n' | sort -r | head -1 | sed 's/^[^ ]* //'

答案 2 :(得分:2)

如果你有bash4 +

ls -t ./**/*.txt | head -1

编辑最新的txt文件

vim $(ls -t ./**/*.txt |head -1)

ps:需要在.bashrc或.profile中启用shopt -s globstar ...

答案 3 :(得分:1)

您可以使用stat功能仅使用最新的修改时间和名称打印每个文件。

找到。 -name“* .txt”-exec stat -c“%m%N”{} \; |排序