2010-10-26 52 views
4

我試圖把find命令在UNIX bash的文本文件的結果殼問題重定向找到一個文件的輸出

使用:

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

然而list_of_txt_files.list住宿空,我必須殺死查找,讓它返回命令提示符。我有很多txt文件在我的主目錄

或者如何將find命令的結果保存到從命令行的文本文件。我認爲這應該工作

回答

5

我會做的第一件事就是使用單引號(有些shell會擴展通配符,但我認爲bash不會,至少在默認情況下),並且find的第一個參數是一個目錄,不是一個文件列表:

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

除此之外,它可能只是需要很長的時間,雖然我不能想象有許多文本文件的人(你說你有一個很多,但它必須非常大,以減慢find)。嘗試它沒有重定向,看看它輸出:

find ~ -name '*.txt' -print 
+0

當我嘗試使用此命令並將輸出重定向到文件時,我的機器運行速度非常慢。慢速機器導致重定向輸出慢得多 - 即幾分鐘後文件仍然是零字節,而沒有輸出重定向,* .txt文件立即被列出。現在我的機器有更多的資源,兩種方式看起來都很快。 – harijay 2010-10-26 19:34:01

1

您可以通過使用三通一起重定向輸出到文件和控制檯。

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

這將輸出重定向到控制檯和文件,因此你不必猜測命令是否是否真正執行。