文件名末尾的代字号代表什么?

在Windows中,我认为文件名中带有波浪号的文件表示当前在应用程序中打开的文件。 例如,Microsoft Word创建的文件名与您当前打开的文件名称几乎相同,但名称中带有波浪号。 它的图标也部分褪色。 据我所知,这表示存在一个临时文件

  • 如果应用程序崩溃并且您没有机会保存文件,或者
  • 允许原始文件保持文件系统解锁并可供其他应用程序访问。

在Linux中,我遇到了一个* .log文件,文件名末尾有一个代字号( scan.log~ )。 这是否意味着日志文件当前在另一个可能写入它的应用程序中打开?

如果文件附加了tilde~ ,则仅表示它是由文本编辑器或类似程序创建的备份; 它并不表示另一个程序正在写入该文件。 此外,在vi打开的任何文件都无法在另一个应用程序中打开,但这是另一个讨论。

轻松找到所有这些类型的文件,请键入cd以进入主文件夹的顶级并输入:

 find -type f -iname '*~' 

或者,如果要在特定目录中找到它们,请键入:

 find /home/mike/Downloads -type f -iname '*~' 

如果您碰巧编辑了文件并且没有保存原始文件的备份,这些文件非常有用! 例如, Gedit为编辑的任何文件创建此类备份,但您可以在首选项中关闭此设置。 但是, (files~) 不能替代正确的备份 ,因为它们可能不包含您需要的数据,或者是您想要的编辑版本。

某些文本编辑器(如emacs )会创建您正在编辑的文件的备份,并为备份文件提供原始文件的名称和波浪号。 您描述的文件可能是使用这样的文本编辑器打开scan.log并进行一些更改的结果。

您可以使用fuser (请参阅Ubuntu软件包psmisc )查看进程当前是否打开该文件: fuser scan.log~