如何在一个命令中查找和显示文件?

时间:2015-11-28 12:46:25

标签: linux bash

我必须找到所有文件(在~/中),这些文件未被审核超过14天并显示文件内容,这些文件以*.txt结尾。我试图做这样的事情:

find ~/ -mtime +14 | cat '*.txt'

但它忽略了|之前的所有内容。你能救我吗?

2 个答案:

答案 0 :(得分:1)

在你的行

find ~/ -mtime +14 | cat '.txt'

find会打印文件名,这些文件名通过管道传输到cat的{​​{1}},忽略它们,stdin会打印文件的内容{ {1}},可能不存在。

所以,试试这个:

cat

其中.txt执行find ~/ -mtime +14 -exec cat {} \; 命令,-exec .... \;替换为....找到的文件名。

或者您可以使用{}

find

xargs的{​​{1}}参数将打印文件名,后跟空字符,find ~/ -mtime +14 -print0 | xargs -0 cat 的{​​{1}}参数告诉它输入由空值分隔字符,以便在包含空格的文件名中不会出现任何问题。

答案 1 :(得分:0)

如果您只希望*.txt个文件使用find的-name对其进行过滤,那么只需添加-exec

来捕获这些文件
 find ~/ -mtime +14 -name "*.txt" -exec cat {} \;