我正在尝试使用查找和定位命令查找文件。
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