为什么 ls 命令会显示已删除的文件?

为什么 ls 命令会显示已删除的文件?

当我在终端中输入时ls,它会显示现有的文件以及我已删除的文件。我如何才能看到仅限当前文件,为什么要ls保留已删除文件的记录?

ls显示已删除的文件名,后跟波浪符号 ( ~)。

答案1

ls不是缓存文件名。它确实会向您显示文件系统上当前的具体内容。但是,@Ravan提示,您的目录中可能存在类似名称的文件。这些通常是由 Vim 和 Emacs 等程序创建的运行时缓存或锁定文件,但几乎可以是任何东西。例如,如果我在一个终端中执行以下操作:

$ touch foo
$ vim foo

然后我将在另一个终端看到以下内容:

$ ls -A
foo  .foo.swp

.foo.swp是一个隐藏的临时文件,如果 Vim 正常退出,它将被删除。

如果这些文件是以前的编辑会话中遗留的,并且不再打开,则可以安全删除它们。只需确保引用文件名,因为它们可能包含特殊字符,如波浪符号 ( ~):

$ rm '.foo~'

答案2

您可以使用

printf '%s\n' *

echo *

ls -U

其中任何一个而不是ls参考这里

符号~可能运行时缓存或者备份文件.有关详情,请参阅这里

看到你的评论后我编辑了此内容;使用此命令删除那些备份文件(带有~符号的文件)

find ./ -name '*~' | xargs rm

答案3

名称后面跟有“~”实际上是缓存文件。删除文件后,它可能仍作为 nautilus 的隐藏文件保留,但“ls”命令会显示它们。

运行rm *~以删除这些文件。

相关内容