因此发生了这样的事情:
$ ls
''$'\342\200''abc2.16.5'
$ ls | od -c
0000000 342 200 a b c 2 . 1 6 . 5 \n
$ ls -il
76236897 -rw-rw-r-- 1 mob users 0 Aug 16 17:52 ''$'\342\200''abc2.16.5'
我该如何删除此文件?以下是一些无效的操作:
$ rm -i -- *
rm: remove regular file ''$'\342\200''abc2.16.5'? y
rm: cannot remove ''$'\342\200''abc2.16.5': No such file or directory
$ rm ./*
rm: cannot remove './'$'\342\200''abc2.16.5': No such file or directory
$ rm ./<TAB> # for file name completion
rm: cannot remove './'$'\342\200''abc2.16.5': No such file or directory
$ find . -delete
find: cannot delete './\342\200abc2.16.5': No such file or directory
$ perl -e 'unlink(glob("*")) or die $!'
$ perl -e 'unlink(glob("*2.16.5")) or die $!'
No such file or directory at -e line 1.
$ find . -inum 76236897 -delete
find: cannot delete './\342\200abc2.16.5': No such file or directory
$ rename * xxx ; rm -v xxx
rm: cannot remove 'xxx': No such file or directory
奇怪的是,truncate * --size 0
作品,cat *
作品,shred *
作品
下一步我应该尝试什么?系统是 Red Hat Enterprise Linux Server 版本 6.8
答案1
既然您说shred
有效,我建议添加-u
要撕碎的论点。
从手册页(man shred
)中:
-u 覆盖后释放并删除文件
因此我会shred -n 0 -u *
在包含该文件的目录中尝试。
答案2
我遇到过这种情况,偶然间,我尝试在 Vim 中打开父目录。这样我就进入了 netrw,在那里我可以看到有问题的“文件”(在 shell 中看起来像一个损坏的文件名在 netrw 中显示为 3 个条目)。删除每个损坏的文件并退出 Vim 就可以解决问题。
答案3
多年来,这种情况经常发生在我身上。对我来说,它通常发生在 Windows NTFS 分区上;您正在使用 RHEL,但也许相同的过程会对您有所帮助。
我从来无法成功删除损坏的文件或父目录。
我一直必须:
- 备份所有文件(减去包含损坏文件的目录)
- 格式化分区
- 恢复所有文件
如果格式化分区不可行,并且损坏的文件没有造成任何实际问题,您还可以尝试以下操作:
- 将损坏的文件放在其自己的目录中
- 将损坏的文件复制到新目录
- 将其他所有好文件复制到新目录
- 将损坏文件的目录移动到
$TEMP
可以安全忽略的位置 - 将所有其他好文件放回原处