我必须找到所有文件(在~/
中),这些文件未被审核超过14天并显示文件内容,这些文件以*.txt
结尾。我试图做这样的事情:
find ~/ -mtime +14 | cat '*.txt'
但它忽略了|
之前的所有内容。你能救我吗?
答案 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 {} \;