我对 unix/linux 环境有点陌生,但遇到了一个小问题。
我正在使用“定位”来查找我需要的文件的路径,它给了我它的路径,但是该文件在该路径中不存在,如下所示:
找到 test1.txt
/home/user/test files/text1.txt
/home/user/test1.txt~
“测试文件”目录是我保存文件的地方,我曾经将它复制到主目录,但我删除了它,不知道它一直告诉我还有一个 tmp 文件。
值得一提的是,我使用了以下命令:
locate test1.txt~ |xargs -n1 rm
删除该 tmp 文件,但也许这就是问题的原因。我尝试显示隐藏文件,并检查临时文件,但也没有找到。
知道发生什么事了吗?
答案1
您可以更新数据库,sudo updatedb
然后尝试locate
再次运行以获取正确的输出。
这是因为数据库会定期更新,使用该命令sudo updatedb
将强制数据库在那一刻进行更新。
答案2
Locate 命令不会搜索整个文件系统。它从数据库文件中选取。它可能是 /var/lib/mlocate.db 或其他数据库文件。如果您希望“locate”命令提供更新的信息,请在运行“locate”之前运行命令“updatedb”。
根据方便程度,可以按日或按周将此更新数据库添加到 cron 中。但有一个问题是,updetedb 命令需要一点时间来更新数据库。因此,最好使用 find 命令。同时,find 命令也不适用于整个文件系统。如果您事先知道某个目录中可能存在相应的文件,那么您可以使用 find 命令仅在该目录中搜索。
例如,find some_directory_name -name file_name。
欲了解更多信息,请参阅相应的手册页。祝您使用 Linux 愉快...