Я хотел бы проиндексировать весь мой диск для быстрого поиска. Я попробовал Tracker, но он не позволяет мне добавить "/" в качестве рекурсивно проиндексированного каталога. Как я могу это сделать?
2 ответа
updatedb
/ locate
, безусловно, хороший выбор, если вы хотите индексировать имена файлов. Смотрите / upvote ответ 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
Он уже должен регулярно индексироваться с запланированными выполнениями updatedb
который используется locate
. Для получения дополнительной информации обратитесь к man
этих двух программ.
Примечание: я говорю только об именах файлов.