既不是目录也不是文件的文件

既不是目录也不是文件的文件

这个问题看上去有点奇怪,但我刚刚在系统中得到了一个文件(目录?)的输出。这可能是一个微不足道或众所周知的错误,但对我来说,这个文件(目录?)的调用ksmserver.notifyrc是一个谜。

[orly at kde-workspace on master]$ rm -fv /home/orly/ksmserver.notifyrc                                   2:06
rm: cannot remove `/home/orly/ksmserver.notifyrc': Is a directory

[orly at kde-workspace on master]$ rm -rfv /home/orly/ksmserver.notifyrc                                  2:09
rm: cannot remove `/home/orly/ksmserver.notifyrc/kscreenlocker.notifyrc': Permission denied

[orly at kde-workspace on master]$ ls -al /home/orly/ksmserver.notifyrc                                   2:09
ls: cannot access /home/orly/ksmserver.notifyrc/..: Permission denied
ls: cannot access /home/orly/ksmserver.notifyrc/kscreenlocker.notifyrc: Permission denied
ls: cannot access /home/orly/ksmserver.notifyrc/.: Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
-????????? ? ? ? ?            ? kscreenlocker.notifyrc

[orly at kde-workspace on master]$ sudo rm -rfv  /home/orly/ksmserver.notifyrc                            2:09
[sudo] password for orly: 
removed `/home/orly/ksmserver.notifyrc/kscreenlocker.notifyrc'
removed directory: `/home/orly/ksmserver.notifyrc'

我想了解的是,

  1. 什么是ksmserver.notifyrc——文件或目录?
  2. 为什么 ls 显示问号而不是属性?
  3. 为什么 ls 列出该文件(目录?)的内容,但没有进一步的内容?

这是我第一次遇到 ls 的此类输出。非常感谢任何建议!

Fedora Linux 64 位,最新稳定版本。

这是否可能是需要 fsck 的损坏 fs?

答案1

这是一个您有读取权限的目录(您可以访问文件系统上的目录条目),但没有执行权限,因此您无法列出其内容。然后,您有该kscreenlocker.notifyrc文件的读取权限,但要列出有关它的任何信息,您需要对包含目录有执行权限。

要重现这种情况,请执行以下操作:

$ mkdir testdir
$ touch testdir/testfile
$ chmod -x testdir
$ ls -al testdir

ls: cannot access testdir/testfile: Permission denied
ls: cannot access testdir/..: Permission denied
ls: cannot access testdir/.: Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
-????????? ? ? ? ?            ? testfile

答案2

1)什么是“ksmserver.notifyrc”——一个文件还是一个目录?

它是一个文件,因此-位于第一列。

2)为什么 ls 显示问号而不是属性? 3)为什么 ls 列出该文件(dir?)的内容,但没有进一步的内容?

您没有包含该目录的执行权限,因此只能获取有关其内容的最少信息。

答案3

  1. 它是一个目录。
  2. 我相信它甚至没有该目录的读取权限(诸如此类)。
  3. 参见 #2。我猜这是这些奇怪的权限交互之一。

了解其本身的权限将会很有趣ksmserver.notifyrc

相关内容