递归搜索后,在终端中列出最新文件,按类型(.txt),在终端
问题描述:
我试图让我的终端返回最新的.txt文件,路径完好无损。我一直在研究ls,grep,find和tail,使用'|'将结果从一个工具传递到下一个工具的功能。最终结果将是有一个工作路径+结果,我可以通过我的文本编辑器。递归搜索后,在终端中列出最新文件,按类型(.txt),在终端
我已经越来越接近这样的测试: 找到。 | grep'.txt $'|尾-1
..但我没有运气与grep返回最新的文件 - 是否有我失踪的国旗?
试图用找到& LS是不完全的工作之一:
发现。 -name“* .txt”| ls -lrth
.. ls返回当前目录而不是查找结果。
请帮忙!
答
你非常亲密。
vi "$(find . -name '*.txt' -exec ls -t {} + | head -1)"
答
find /usr/share -name '*.txt' -printf '%C+ %p\n' | sort -r | head -1 | sed 's/^[^ ]* //'
答
可以使用统计函数来打印每个文件只有最新的修改时间和名称。
找到。 -name“* .txt”-exec stat -c“%m%N”{} \; |排序
答
如果你有bash4 +
ls -t ./**/*.txt | head -1
编辑最新的txt文件
vim $(ls -t ./**/*.txt |head -1)
PS:需要启用shopt -s globstar
在你的.bashrc或.profile ...
可悲的是,如果您的文件和/或目录中带有换行符,那么您的炸弹就会炸毁。我知道,不寻常的,但一个完全可靠的解决方案应该处理这些。除此之外,不是一个不好的解决方案。 – 2011-06-10 19:07:59
@克里斯:真的......但你为什么让我出去?对于其他所有解决方案都是如此,因为他们都在使用头像或排序。排序可以处理,但头要求perl或awk。 – 2011-06-10 20:21:52
可能是因为你的第一个答案。通常,我会用“西部最快的枪”的规则来玩,这意味着如果你不是第一张海报(或者你的帖子不在第一张海报的一两分钟内),通常它不算。 (当然,除非这是一个真正的创新答案。) – 2011-06-10 20:29:14