我在主目录中有一个名为的文件.viminfo
。我可以通过以下方式查看该文件ls -lh
:
$ ls lh
...
drwxr-xr-x. 2 mt1022 1091 4.0K Oct 12 2016 .vim
-?????????? ? ? ? ? ? .viminfo
-rw-r--r--. 1 mt1022 1091 305 Nov 9 2013 .vimrc
...
但是我无法删除这个文件:
$ rm .viminfo
rm: cannot remove '.viminfo': No such file or directory
我在某处看到过,可以通过 inode 号删除此类损坏的文件。但是,当我运行时,ls -i
我得到了以下文件输出:
145563901919042729 .cpan 144115239380596661 .vim
145563901918974272 .cpanm ? .viminfo
145564136279985406 .dask 144115238810163333 .vimrc
我也尝试过sudo chmod g+x .viminfo
(回答一个非常类似帖子在这个网站上)。 我仍然收到no such file or directory
错误。
我的问题是如何删除这种损坏的文件?
可能有用的其他信息:
- 该文件存储在光泽文件系统上。
- 该文件之前是正常的,但在最近突然断电后变得损坏。
- 该文件在期间未修复
fsck
。
答案1
ls 输出中的问号表示它无法找到stat()
目录条目。
如果您尝试列出您有 r(读)权限但没有 x(搜索)权限的目录,也可以看到这些内容。但是,在这种情况下,它不会报告 I/O 错误。
就您而言,我认为好像存在某些磁盘或文件系统损坏。
尝试检查dmesg
或/var/log/messages
获取更多信息。