Я немного новичок в среде Unix / Linux, но у меня есть небольшая проблема.

Я использую "locate", чтобы найти путь к файлу, который мне нужен, он дает мне путь к нему, но файл не существует по этому пути, вот так:

найдите test1.txt

/home/user/test files/text1.txt
/home/user/test1.txt~

В папке "test files" я хранил файл, и однажды я скопировал его в домашний каталог, но я удалил его, не зная, что он говорит мне, что для него все еще есть файл tmp.

Стоит упомянуть, что я использовал команду:

locate test1.txt~ |xargs -n1 rm

удалить этот файл tmp, но, возможно, именно это вызвало проблему. Я пытался показать скрытые файлы и проверить временные файлы, но не нашел его.

какая-нибудь подсказка, что случилось?

2 ответа2

3

Вы можете обновить базу данных, используя sudo updatedb а затем снова попробовать запустить locate для получения правильного вывода.

Это связано с тем, что база данных обновляется периодически, а использование команды sudo updatedb заставит базу данных обновляться в этот момент.

0

Команда locate не выполняет поиск по всей файловой системе. Это берет из файла БД. Это может быть /var/lib/mlocate.db или какой-либо другой файл БД. Если вы хотите, чтобы команда 'locate' выдала обновленную информацию, запустите команду 'updatedb' перед запуском 'locate'.

Этот обновленный b может быть добавлен в cron ежедневно или еженедельно в зависимости от удобства. Но одна проблема заключается в том, что команде updetedb требуется немного времени для обновления базы данных. Так что лучше идти с командой find. В то же время команда find также не подходит для всей файловой системы. Если вы заранее знаете, что в каком-то каталоге соответствующий файл может существовать, вы можете выполнить поиск только в этом каталоге с помощью команды find.

Ex. найти некоторое_каталог_имя -имя имя_файла.

Для получения дополнительной информации, пожалуйста, обратитесь к соответствующим справочным страницам. Удачного линуксинга ...

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