在unix系統中搜尋文件

在unix系統中搜尋文件

我正在嘗試使用查找和定位命令來查找文件。

locate命令速度更快,但需要更新slocate資料庫。命令find速度較慢,但不需要任何更新。

我正在嘗試使用一種prd系統。

任何人都可以建議一個命令,它會更快並且可以與我的 shell 腳本的初始級別用戶一起使用嗎?

答案1

考慮到檔案位於嵌套不超過兩到三個深度的幾個子目錄中,因此您可以使用(可能)更快的命令,例如

(cd /path/to/directory; ls *.txt */*.txt */*/*.txt)

當你以某種方式設法回答你自己的問題時,使用updatedbbut with加速定位, 喜歡:

$ updatedb -o /home/rahul/my.db -U /home/rahul/ -e "not/in/this/directory1 not/in/this/directory2"
$ locate -d /home/rahul/my.db            ### point locate to use your db

更新資料庫的人尋求幫助。


或者,根據@cas的建議,將輸出重定向find到一個文件,並grep重複運行它。純文字比資料庫佔用更多空間,updatedb但搜尋速度快得多。

例如:

find /path/to/directory > /tmp/files.list
grep -i file.xml /tmp/files.list
grep -i anotherfile.xml /tmp/files.list

相關內容