当我在终端中输入时ls
,它会显示现有的文件以及我已删除的文件。我如何才能看到仅限当前文件,为什么要ls
保留已删除文件的记录?
ls
显示已删除的文件名,后跟波浪符号 ( ~
)。
答案1
ls
做不是缓存文件名。它确实会向您显示文件系统上当前的具体内容。但是,@Ravan提示,您的目录中可能存在类似名称的文件。这些通常是由 Vim 和 Emacs 等程序创建的运行时缓存或锁定文件,但几乎可以是任何东西。例如,如果我在一个终端中执行以下操作:
$ touch foo
$ vim foo
然后我将在另一个终端看到以下内容:
$ ls -A
foo .foo.swp
.foo.swp
是一个隐藏的临时文件,如果 Vim 正常退出,它将被删除。
如果这些文件是以前的编辑会话中遗留的,并且不再打开,则可以安全删除它们。只需确保引用文件名,因为它们可能包含特殊字符,如波浪符号 ( ~
):
$ rm '.foo~'
答案2
答案3
名称后面跟有“~”实际上是缓存文件。删除文件后,它可能仍作为 nautilus 的隐藏文件保留,但“ls”命令会显示它们。
运行rm *~
以删除这些文件。