如何在 ubuntu 中索引我的整个磁盘?

Mic*_*elt 4 search ubuntu

我想索引我的整个磁盘以进行快速搜索。我尝试了 Tracker,但它不允许我添加“/”作为递归索引目录。我怎样才能做到这一点?

Joe*_*ams 7

updatedb/locate当然是一个不错的选择,如果您要索引文件名。 请参阅/赞成 cYrus 的回答。

但是,另一种选择是简单地使用find列出硬盘驱动器上所有文件的名称,并将它们放在一个文件中:

sudo find / > files.list
Run Code Online (Sandbox Code Playgroud)

稍后,您可以使用以下命令查找文件grep

grep 'myfavoritesong' files.list
Run Code Online (Sandbox Code Playgroud)

虽然这看起来很蹩脚,但实际上它在实践中往往很快,即使你有很多文件。

当然,这几乎没有比locate. 但是,这是一种快速简便的索引外部硬盘驱动器的方法。

更进一步,您可能想要散列硬盘驱动器上的所有文件:

sudo find / -type f -exec sha256sum {} \; > files.sha256
Run Code Online (Sandbox Code Playgroud)

这可能需要很长时间。

它为您提供了一种定位相同文件的方法。假设您.iso在计算机上发现一个大文件:

$ sha256sum huge.iso
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824  huge.iso
Run Code Online (Sandbox Code Playgroud)

您感觉硬盘驱动器上的其他位置存在相同的文件,您想删除其中一个文件以节省空间。您可以通过 grep 哈希列表找到它:

$ grep 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 files.sha256
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824  huge.iso
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824  archive/path/to/other/huge.iso
Run Code Online (Sandbox Code Playgroud)