Никакой locate.db даже после выполнения updatedb

Контраст:

% whence -a print
print
% whence -a echo
echo
/bin/echo

Это показывает это print только существует как встроенное, тогда как echo существует и как встроенное и как исполняемый файл. (На самом деле, идя тем, что показывают выше, print и echo могли быть псевдонимы, функции или зарезервированные слова; использовать whence -w видеть точно, какой внутренний объект имя представляет.)

find внешняя команда, таким образом, она не может вызвать встроенную оболочку. Если действительно необходимо вызвать оболочку, создал-ins, вызовите оболочку explictly:

find . -name filename -exec zsh -c 'print "$0"' '{}' \;

В этом случае я не думаю, что Вы хотите zsh's print встроенный: find -print основной сделает задание, только правильно (zsh print встроенный разворачивает обратные косые черты).

find . -name filename -print

(Можно даже не учесть -print здесь, потому что -print действие по умолчанию для find когда никакое действие не указано.)

Причина, почему существует echo внешний исполняемый файл, но ни одно позвонившее print это echo стандартная команда, таким образом, она дала максимальную доступность даже программам, которые хотят вызвать ее, не идя через оболочку. Напротив, print характерно для zsh, поэтому только zsh сценарии используют его во-первых.

(О, и в моей системе, существует a print команда, которая отправляет файлы на принтер.)

4
04.10.2012, 23:46
2 ответа

Когда mlocate конец updatedb, запишите заключительный файл с пользовательским корнем и другой группой. Проверьте полномочия в "mlocate" каталоге:

drwxr-x--- 2 root slocate 4096 Oct 25 18:02 mlocate
1
27.01.2020, 21:06
  • 1
    Если у него нет разрешения записать файлы здесь.. как они могли работать временно, файлы происходят? –  daisy 26.10.2012, 03:45

Попытайтесь переустановить mlocate пакет. Похоже, что у Вас могло бы быть некоторое повреждение

-1
27.01.2020, 21:06

Теги

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