Команда locate находит файлы, которые нет там

Возможно, поздно, но это иногда случается, когда вложенные разрешения нарушают друг друга. Например, предположим, что у нас есть такая структура папок:

Folder1 :
    File1

Это означает, что мы иметь File1 внутри Folder1. Теперь, если я установил разрешение для Folder1 как:

chmod 444 Folder1

и для File1:

chmod 777 File1

, ОС обнаружит нарушение, и файловый менеджер не сможет получить доступ к File1. Поскольку разрешение File1 выходит за рамки разрешенной области Folder1.

Так что проверьте содержащую папку, а также сам файл. Удачи

0
26.07.2018, 03:12
1 ответ

Из locate(1), то есть запуска man 1 locate, можно прочитать

DESCRIPTION
     The locate program searches a database for all pathnames which match the
     specified pattern.  The database is recomputed periodically (usually
     weekly or daily),

, что вполне может объяснить -из -датированных результатов. Чуть дальше:

 /System/Library/LaunchDaemons/com.apple.locate.plist  Job that starts the
                                                       database rebuild

, что означает еженедельное восстановление. (Это относится к выпуску Mac OS X 10.11, так что с тех пор Apple могла что-то изменить.)

Более типичным для macOS может быть использование mdfindили подобных инструментов, которые связаны с базой данных Spotlight; эта база данных может обновляться чаще, чем база данных locate. (Но я отключил инструменты Spotlight, так как они сходят с ума по вводу-выводу на моем старом вращающемся металлическом жестком диске 2009 года...)

2
28.01.2020, 02:31

Теги

Похожие вопросы