小雨宙

Let's debug the world.

Linux下删除/重命名无法输入的乱码文件的方法

很多人可能会遇到的问题,做个小分享。希望能帮到一些人。


简单的情况:

如果某目录下就那么一个文件。或者整个目录都不想要了,可以直接用 * 代替,删除全部。

复杂的情况:

如果文件夹內有很多文件,只想处理某个/某些乱码的文件。

为了效果逼真,我手工造了一些文件名乱码的文件

/tmp # touch $'\x98\x10\x09\x08\x07\x06\x05\x04\x03\x02\x01\x00'
/tmp # touch $'\x98\x10\x09\x08\x07\x06\x05\x04\x03\x02\x01\x01'
/tmp # touch $'\x98\x10\x09\x08\x07\x06\x05\x04\x03\x02\x01\x02'
/tmp # touch $'\x98\x10\x09\x08\x07\x06\x05\x04\x03\x02\x01\x03'
/tmp # touch $'\x98\x10\x09\x08\x07\x06\x05\x04\x03\x02\x01\x04'

/tmp # ls -l
-rw-r--r-- 1 root root 0 Jan 13 17:51 ???????????
-rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
-rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
-rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
-rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
/tmp #

可以看到,这里这里多有了5个乱码文件。

看着文件名全是问号,根本分不出谁是谁。(有些比较新的系统上这些字符以16进制显示,可以直接处理)。

在文件系统中,识别文件谁是谁的特征,除了文件名以外,还有一个唯一识别代号,叫inode number。

就像人的身份证号一样。

我们可以ls -i 来查看文件的inode

/tmp # ls -i
48488 ??????????? 48489 ???????????? 48490 ???????????? 48491 ???????????? 48492 ????????????

好了。现在有了这些号码,我们就可以针对性的找指定文件了。怎么找呢?

可以用find命令。它有一个参数是-inum,可以传入文件的inode number来找到文件。

/tmp # find -inum 48488
./� 

find后想重命名就可以直接用-exec 去执行命令,{} 会自动解析成那个文件名。想改成啥都行,我为了好识别,把文件名改成了跟inode number一样的内容
/tmp # find -inum 48488 -exec mv {} 48488 \;
/tmp # ls -il
48488 -rw-r--r-- 1 root root 0 Jan 13 17:53 48488
48489 -rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
48490 -rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
48491 -rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
48492 -rw-r--r-- 1 root root 0 Jan 13 17:51 ????????????
/tmp #

如果要删除它。是不是 find -inum 48488 -exec rm -f {} \; 就可以了?

是的,没错。

不过find还有一个-delete参数,可以直接删除找到的文件。

find -inum 48488 -delete

博文最后更新时间:


评论

  • AEmpinepoivole

    Four to five associated with this juice must be consumed per week to have the desired result. He is content, as well as the complete opposite of our thoughts old age has in store for us. https://www.cialissansordonnancefr24.com/prix-cialis-andorre/

发表评论

博客统计

访问量:24608

博文总数:11 评论总数:4

原创11 翻译0 转载0