Unix 将“查找”的输出重定向到文件时出现问题

Unix 将“查找”的输出重定向到文件时出现问题,unix,find,pipe,Unix,Find,Pipe,我试图将find命令的结果放入unixsbashshell上的文本文件中 使用: find ~/* -name "*.txt" -print > list_of_txt_files.list 但是,list_of_txt_files.list保持为空,我必须终止find,让它返回命令提示符。我的主目录中有很多txt文件 或者,如何将find命令的结果从命令行保存到文本文件中。我认为这应该可以我要做的第一件事是使用单引号(一些shell会扩展通配符,但我认为至少在默认情况下,bash不会这

我试图将find命令的结果放入unixsbashshell上的文本文件中

使用:

find ~/* -name "*.txt" -print > list_of_txt_files.list
但是,list_of_txt_files.list保持为空,我必须终止find,让它返回命令提示符。我的主目录中有很多txt文件


或者,如何将find命令的结果从命令行保存到文本文件中。我认为这应该可以

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

find ~ -name '*.txt' -print > list_of_txt_files.list
除此之外,这可能需要很长时间,尽管我无法想象任何人拥有那么多的文本文件(你说你有很多,但它必须非常庞大才能减慢查找的速度)。首先尝试不重定向,然后查看其输出:

find ~ -name '*.txt' -print

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

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

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

以下是对我有效的方法

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

当我尝试这个命令时,我的机器运行得非常慢,有没有将输出重定向到文件。机器运行缓慢导致重定向的输出速度大大降低,即几分钟后,文件仍为零字节,而没有输出重定向,则会立即列出*.txt文件。现在我的机器有了更多的资源,这两种方法看起来都很快。这很有效,但只在分号前加了一个反斜杠,使用
find(GNU findutils)4.7.0-git