在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

相关内容