今天有遇到一个很奇怪的问题:有几个文件或文件目录出现属主、属组、权限、时间为'?'的情况,如下所示:

ll -hi /dir|grep filename

       ? -????????? ? ?    ?       ?            ? current

       ? d????????? ? ?    ?       ?            ? A6993400854112

百度网贴一大堆,汇总下来:

  1. 使用inode节点删除文件:

    ls -hi /dir #显示文件的inode

    find . -inum [inode数字] -exec rm -i {} /; 

  2. 属主属组权限修改:(解决的是文件没有执行权限,普通用户查看到的是上述情况)

    su root

    chown root:root filename

    chmod 777 filename

  3. debug模式进入分区删除:

    debugfs -w   /dev/sdb5 

    cd /dir && rm filename

  4. umount分区,使用fsck检查磁盘并修复:

    umount /dir

    fsck -n #不改变文件系统

    fsck -y #检查并修复


列出这么多来,好像解决这个问题的就是最后一个。因为看到有人说遇到过这样的情况,然后就是那样解决的。不过这种方法的弊端就是:脏数据会随之丢失!