将find的输出重定向到文件的问题

时间:2010-10-26 02:18:45

标签: unix find pipe

我试图将find命令的结果放到unix bash shell上的文本文件中

使用:

find ~/* -name "*.txt" -print > list_of_txt_files.list

但是list_of_txt_files.list保持为空,我必须终止查找才能让它返回命令提示符。我的主目录中有很多txt文件

或者如何将命令的结果保存到命令行的文本文件中。我认为这应该有用

3 个答案:

答案 0 :(得分:10)

我要做的第一件事就是使用单引号(有些shell会扩展通配符,但我认为bash不会这样做,至少默认情况下如此),以及find的第一个参数是目录,而不是文件列表:

find ~ -name '*.txt' -print > list_of_txt_files.list

除此之外,它可能只需要很长时间,但我无法想象任何人 许多文本文件(你说你有很多但是它必须非常庞大到放慢find)。在没有重定向的情况下首先尝试它,看看它输出了什么:

find ~ -name '*.txt' -print

答案 1 :(得分:1)

您可以使用tee将输出重定向到文件和控制台。

find ~ -name '*.txt' -print | tee result.log

这会将输出重定向到控制台和文件,因此您无需猜测命令是否实际执行。

答案 2 :(得分:1)

这是对我有用的

find . -name '*.zip' -exec echo {} \\; > zips.out