正如您在下面看到的,文件中有不常见的字符。
在终端或Dolphin中删除它们会返回错误:
没有这样的文件或目录
ls -la
在目录上运行给了我以下输出:
-rw-rw-r-- 1 aalap aalap 0 Nov 14 01:05 ??
-rw-rw-r-- 1 aalap aalap 0 Nov 14 01:05 ?2?.???љ?!?Gb??σ?[?F?
-rw-rw-r-- 1 aalap aalap 0 Nov 14 01:05 ??3]d???:????????1????G?p?ȋ??????嫳?d????ą-??
-rw-rw-r-- 1 aalap aalap 0 Nov 14 01:05 3l??#g?w????O?JKB7?co??քH??bT?NA???S???X?I?A?qC??M?I???
-rw-rw-r-- 1 aalap aalap 0 Nov 14 01:05 ??8??-?@,?Zp?[?bI????7^?ñ[?ڏ??z?O???ч??eEȰ?+??,OF??h
我在fsck
另一个操作系统的分区上运行了一个命令,但没有任何改变。
如何删除这些文件?
一种简单的方法是通过它们的inode删除这些文件。:)
使用ls -li
目录与常见的字符显示每个文件的inode编号,例如,
$ ls -li
total 0
133370 -rw-r--r-- 1 malte malte 0 Dec 30 19:00 ?2?.???љ?!?Gb??σ?[?F?
132584 -rw-r--r-- 1 malte malte 0 Dec 30 18:59 ??3]d???:????????1????G?p?ȋ??????嫳?d????ą-??
接下来,使用该find
实用程序,使用语法删除相应文件的名称find <somepath> -inum <inode_number> -exec rm -i {} \;
,如以下示例所示:
$ find . -inum 133370 -exec rm -i {} \;
rm: remove regular empty file ‘./?2?.???љ?!?Gb??σ?[?F?’? y
$ ls -li
total 0
132584 -rw-r--r-- 1 malte malte 0 Dec 30 18:59 ??3]d???:????????1????G?p?ȋ??????嫳?d????ą-??
该-i
选项rm
是不是真的有必要,我只是说这让你从你并不想删除意外删除的文件。:)它导致rm
要求确认要删除的每个文件。
如果要通过它们的inode删除多个文件,则可以将-o
(意义或)语法用于find
:
$ find . \( -inum 133370 -o -inum 132584 \) -exec rm -i {} \;
rm: remove regular empty file ‘./?2?.???љ?!?Gb??σ?[?F?’? y
rm: remove regular empty file ‘./??3]d???:????????1????G?p?ȋ??????嫳?d????ą-??’? y
您可以通过将括号内的表达式扩展为更多-o -inum <inode_number>
表达式来添加更多的索引节点号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句