我正在使用CentOS 7,并试图列出一个目录的内容,但不能。 当我尝试列出内容时,我得到以下输出:
[entpnerd@myhost ~]$ ls -ali /data/sharedlogs/otherhost/ ls: cannot access /data/sharedlogs/otherhost/vcs: Not a directory total 12 2361284 drwxr-xr-x 4 root root 4096 Sep 26 14:40 . 2359297 drwxr-xr-x 6 root root 4096 Apr 26 17:41 .. 2362573 drwxr-xr-x 2 root root 4096 Mar 22 2017 tkr ? d????????? ? ? ? ? ? vcs
输出状态表明我的目录vcs是“不是目录”,尽pipe它应该是,因为这是以前logging文件的地方。 此外,文件权限位现在都是问号,所有者和(无法解释)inode ID也是如此。
我如何让文件系统再次将我的目录识别为目录?
在尝试了下面概述的所有内容之后,我所看到的唯一途径就是确保磁盘已经备份并运行fsck (正如本论坛所build议的那样),或者可能只是格式化整个安装。 希望我find一个更简单,不太激烈的解决scheme。
有些事情我已经尝试过了:
sudo :我尝试运行sudo ls但输出没有区别。 rm :我试过把vcs放回去,但没有运气。 我尝试了sudo和没有,但也没有运气。 奇怪的是,当我尝试sudo rm它声明Is a directory 。 我也用-r和-d开关试过rm ,也没有运气。 我从rm命令获得的输出是:
[entpnerd@myhost ~]$ rm /data/sharedlogs/otherhost/vcs rm: cannot remove '/data/sharedlogs/otherhost/vcs': Not a directory [entpnerd@myhost ~]$ sudo rm /data/sharedlogs/otherhost/vcs rm: cannot remove '/data/sharedlogs/otherhost/vcs': Is a directory [entpnerd@myhost ~]$ sudo rm -r /data/sharedlogs/otherhost/vcs rm: cannot remove '/data/sharedlogs/otherhost/vcs': Is a directory [entpnerd@myhost ~]$ rm -r /data/sharedlogs/otherhost/vcs rm: cannot remove '/data/sharedlogs/otherhost/vcs': Not a directory [entpnerd@myhost ~]$ rm -rd /data/sharedlogs/otherhost/vcs rm: cannot remove '/data/sharedlogs/otherhost/vcs': Not a directory [entpnerd@myhost ~]$ sudo rm -rd /data/sharedlogs/otherhost/vcs rm: cannot remove '/data/sharedlogs/otherhost/vcs': Is a directory
ls命令的输出中可以看到, vcs目录没有inode ID。 非ASCII字符:在文章“ 如何删除不可删除的目录 ”中,该目录具有非ASCII字符。 我从xxd输出中看到的情况也不是这样:
[entpnerd@myhost ~]$ ls -l /data/sharedlogs/otherhost/ | xxd ls: cannot access /data/sharedlogs/otherhost/vcs: Not a directory 0000000: 746f 7461 6c20 340a 6472 7778 722d 7872 total 4.drwxr-xr ... 0000040: 3f3f 3f3f 3f20 3f20 3f20 2020 203f 2020 ????? ? ? ? 0000050: 2020 2020 203f 2020 2020 2020 2020 2020 ? 0000060: 2020 3f20 7663 730a ? vcs.
lsattr :正如同样的问题所build议的那样,“ 为什么我不能以root身份删除这个文件? ”,我试过使用lsattr命令,但是也没有运气:
[entpnerd@myhost ~]$ lsattr /data/sharedlogs/otherhost/ -------------e-- /data/sharedlogs/otherhost/tkr /data/sharedlogs/otherhost/vcs: Not a directory [entpnerd@myhost ~]$ lsattr /data/sharedlogs/otherhost/vcs lsattr: Not a directory while trying to stat /data/sharedlogs/otherhost/vcs [entpnerd@myhost ~]$ sudo lsattr /data/sharedlogs/otherhost/vcs [sudo] password for entpnerd: lsattr: Not a directory while trying to stat /data/sharedlogs/otherhost/vcs
设置目录的可执行位:根据类似的问题,“ 问题显示在ls目录。IO错误 ”,我试图设置目录的可执行位,但没有运气。
[entpnerd@myhost ~]$ sudo chmod -R g+x /data/sharedlogs/otherhost/vcs [sudo] password for entpnerd: chmod: cannot access '/data/sharedlogs/otherhost/vcs': Not a directory [entpnerd@myhost ~]$ sudo chmod -R u+x /data/sharedlogs/otherhost/vcs chmod: cannot access '/data/sharedlogs/otherhost/vcs': Not a directory [entpnerd@myhost ~]$ sudo chmod -R a+x /data/sharedlogs/otherhost/vcs chmod: cannot access '/data/sharedlogs/otherhost/vcs': Not a directory
任何帮助将不胜感激。
这可能是安装服务(例如Samba)的问题。 尝试重新启动远程主机上的Samba服务:
sudo service smb restart