。 (点)显示为路径分隔符

。 (点)显示为路径分隔符

我正在寻找一个非常奇怪的错误:

arian@orel:~$ ls ._cache.<tab><tab>
Display all 205 possibilities? (y or n)
._cache.apt-file/
._cache.chromium/
._cache.chromium.Default/
._cache.chromium.Default.Cache/
._cache.chromium.Default.Media Cache/
._cache.dconf/
._cache.evolution.mail/
._cache.evolution.mail.1370283652_17412_21@orel/
[email protected]/
[email protected]/
._cache.evolution.mail.1370283652_17412_21@orel.folders.Archives.subfolders/
...

它就像点充当路径分隔符,但制表符补全不会将其视为路径分隔符并递归显示目录。我只在这个目录中看到过这种行为。既不在父目录中,也不在子目录中,也不在单独的文件系统上。从安装介质访问时也会显示此信息,因此似乎不是我的操作系统。通过 sshfs 访问时也会显示。lsfind显示正常路径,但du也显示这些时期的东西。

我在 FS 上做了 fsck

我注意到一个名为

playlist.pls\?action\=playlist\&type\=pls\&sid\=545\&stream_id\=1711

在目录中。将其移至其他地方后,该行为消失了。那么处理这些字符似乎存在一些错误,对吧?好吧,我可以 chdir 我移动文件的位置,创建一些文件和目录,但这种行为没有出现。我touch编辑了一些名称中带有\&\?\=的文件,行为正常。我将playlist.pls\?action\=playlist\&type\=pls\&sid\=545\&stream_id\=1711文件移回原处,没有出现任何异常行为。

我不太确定在这里做什么。肯定存在一些错误,如果所有代码都正常工作,至少 fsck 应该检测到磁盘上可能存在的错误,对吧?我也不知道什么代码有问题。

一旦我移动了该文件,我就无法重现这个错误。

答案1

有些文件和文件夹以“._cache”开头。但您通常不会使用该ls命令看到它们,因为它们是隐藏文件。在 Linux 中,所有以 开头的文件.都被视为隐藏文件。要让 ls 显示它们,请使用该-a选项。

# ls
a-not-hidden-file
another-not-hidden-file
a-not-hidden-folder/
# ls -a
.hidden-file
.another-hidden-file
.a-hidden-folder/
a-not-hidden-file
another-not-hidden-file
a-not-hidden-folder/

相关内容