4

Я хотел бы проиндексировать весь мой диск для быстрого поиска. Я попробовал Tracker, но он не позволяет мне добавить "/" в качестве рекурсивно проиндексированного каталога. Как я могу это сделать?

2 ответа2

6

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
2

Он уже должен регулярно индексироваться с запланированными выполнениями updatedb который используется locate . Для получения дополнительной информации обратитесь к man этих двух программ.

Примечание: я говорю только об именах файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .