尽管文件位于终端中,但它在 Linux 中不存在

尽管文件位于终端中,但它在 Linux 中不存在

我对 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 愉快...

相关内容