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

har*_*jay 6 unix pipe find

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

使用:

find ~/* -name "*.txt" -print > list_of_txt_files.list
Run Code Online (Sandbox Code Playgroud)

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

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

pax*_*blo 11

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

find ~ -name '*.txt' -print > list_of_txt_files.list
Run Code Online (Sandbox Code Playgroud)

除此之外,它可能只需要很长时间,但我无法想象有任何人拥有那么多文本文件(你说你有很多,但它必须是相当大的减速find).首先尝试没有重定向,看看它输出的内容:

find ~ -name '*.txt' -print
Run Code Online (Sandbox Code Playgroud)


Pra*_*nde 8

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

find ~ -name '*.txt' -print | tee result.log
Run Code Online (Sandbox Code Playgroud)

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