Linux 中的 .# 文件名是什么意思?

Linux 中的 .# 文件名是什么意思?

这可能微不足道,但我对 Linux 还很陌生,无法在网上找到任何信息。

在文件夹中,我可以执行命令find . -regex '.*py'并得到以下结果:

./.#netMHC3.2.py

这是当前目录中的文件吗?我该怎么做才能显示其内容?

答案1

以“.”开头的文件是隐藏文件。我不知道在某些类型的文件上使用“#”的标准。我在文本编辑器生成的“备份”文件中看到过它。

要显示文件的内容,请使用“cat”命令:

cat .#netMHC3.2.py

'.' 和 './' 是您正在工作的当前目录(使用 pwd 知道您所在的位置)。

答案2

老问题了,但第一次在 Google 上搜索却没有正确答案。

这些文件是“锁定”文件,通常由编辑器创建。锁定文件有多种不同的形式,但两者emacs都会joe创建名称类似于您的示例中的符号链接 - 如 .#[original-filename]。

锁定文件用于防止多个实例同时编辑同一个文件(例如,2 个不同的用户想要编辑同一个文件)。

如果你跑

$ joe netMHC3.2.py

将创建一个名为

.#netMHC3.2.py

当编辑器关闭时,文件会被删除。如果编辑器崩溃,文件会被保留下来并变成“过期锁”。此时您可以手动删除文件,但大多数编辑器会在下次编辑文件时自动为您提供该选项。

答案3

正如 Fernando 所说,文件名前面的“.”表示它是隐藏的。隐藏意味着使用该ls命令时,隐藏文件不会成为输出的一部分。ls -a但是,您可以使用它来查看它们。

这也适用于文件管理器。默认情况下,大多数图形文件管理器不会显示隐藏文件,除非您告诉它们。

主目录中的隐藏文件通常用于存储应用程序的配置数据。 ~/.bashrc将包含 Bash shell 的任何配置数据,并且仅适用于您的帐户。

答案4

嗯,这是一个非常老的问题,但是正确答案不在这里,所以......

#filename#是 emacs 使用的工作文件。我猜像自动保存文件之类的。如果您的常规文件(filename不带前后标签)是最新的,那么您可以删除该#filename#文件。

相关内容