我正在嘗試使用查找和定位命令來查找文件。
locate
命令速度更快,但需要更新slocate
資料庫。命令find
速度較慢,但不需要任何更新。
我正在嘗試使用一種prd
系統。
任何人都可以建議一個命令,它會更快並且可以與我的 shell 腳本的初始級別用戶一起使用嗎?
答案1
考慮到檔案位於嵌套不超過兩到三個深度的幾個子目錄中,因此您可以使用(可能)更快的命令,例如
(cd /path/to/directory; ls *.txt */*.txt */*/*.txt)
當你以某種方式設法回答你自己的問題時,使用updatedb
but 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