我想索引整个磁盘以便快速搜索。我尝试了 Tracker,但它不允许我添加“/”作为递归索引目录。我该怎么做?
答案1
updatedb
locate
如果您要索引文件名, /无疑是一个不错的选择。查看/赞同 cYrus 的回答。
但是,另一种选择是简单地使用find
列出硬盘上所有文件的名称,然后将它们放在一个文件中:
sudo find / > files.list
稍后,你可以使用以下命令查找文件grep
:
grep 'myfavoritesong' files.list
尽管这看起来很蹩脚,但实际上即使你有很多文件,它实际上也往往很快。
当然,这几乎不会比 更好locate
。但是,这是索引外部硬盘的一种快速简便的方法。
进一步说,你可能想要对硬盘上的所有文件进行哈希处理:
sudo find / -type f -exec sha256sum {} \; > files.sha256
这很可能要花很长时间。
它的作用是让你找到相同的文件。假设你.iso
在电脑上发现了一个巨大的文件:
$ sha256sum huge.iso
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 huge.iso
你觉得硬盘上的其他地方也存在相同的文件,所以想删除其中一个文件以节省空间。你可以通过哈希列表来找到它:
$ grep 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 files.sha256
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 huge.iso
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 archive/path/to/other/huge.iso
答案2
它应该已经定期索引,并按计划执行updatedb
。locate
有关更多信息,请参阅man
这两个程序。
笔记:我只谈论文件名。