Странное поведение "locate" и изменение значков

Я бы хотел поменять иконку программы под названием Refit на собственную. Эта программа имеет различные инструменты, и когда я пытаюсь изменить эти значки, все в порядке, но затем я запускаю следующую команду:

$ locate refit.icns

и вывод:

$ /efi/refind/icons/os_refit.icns

Проблема в том, что у меня нет папки с именем refind, а путь просто не существует. Я попробовал это с обоими:

$ ls 

а также

$ sudo ls

в каталоге /efi. Таким образом, мои вопросы на самом деле два: как я могу изменить значок этой программы? И почему происходит такое странное поведение с командой locate?

Я на снежном барсе 10.6.8. Спасибо за вашу помощь.

2 ответа

Решение

locate Команда работает от базы данных, так что если у вас был файл с именем /efi/refind/icons/os_refit.icns, locate может продолжать сообщать об этом файле в качестве опции, даже после того, как файл был удален. updatedb утилита обновляет locate база данных. Эта программа должна запускаться периодически. Typing sudo updatedb следует запустить его немедленно, но имейте в виду, что это займет некоторое время (вероятно, пару минут), и это довольно интенсивно использует диск.

Предостережение: мой Mac в настоящее время работает на Linux, поэтому я основываюсь на утилитах Linux. OS X обычно очень похожа на этом уровне, но, возможно, есть некоторые критические различия.

Locate может быть настроен для поиска смонтированных и размонтированных разделов. Я признаю, что у меня нет опыта с locate в OS X (запустить locate -V чтобы получить некоторую информацию), но я предполагаю, что вы обнаружите, что какой-то загрузочный раздел сканируется и индексируется с помощью locate, если вы посмотрите на файл конфигурации. Может быть расположен в /etc/locate.conf. Если его там нет, тогда сделайте man locate и прокрутите вниз до ФАЙЛОВ. Если вы найдете там только точку монтирования (т.е. /efi), то /etc/fstab - это место для поиска соответствующего устройства.

Другие вопросы по тегам