求救!如何删除这个乱码文件?

2023-03-10 13:08:24 +08:00
 ufs

Android 下,在 Termux 里用 unzip 解压一个文件,结果文件名是乱码的:

$ ls kkk/
''$'\251\242''+'$'\246''1.DOCX'
''$'\251\242''+'$'\246''2.DOCX'

用 TAB 自动补全,文件名显示是这样子的:

��+�1.DOCX
��+�2.DOCX

没有乱码的正确文件名应该是:

附件 1.DOCX
附件 2.DOCX

然后问题是,这些乱码文件我怎么删也删不掉!

第 1 种方法:

$ rm -rf kkk
rm: cannot remove 'kkk/': Directory not empty
$ cd kkk
$ rm *
rm: cannot remove ''$'\251\242''+'$'\246''1.DOCX': No such file or directory
rm: cannot remove ''$'\251\242''+'$'\246''2.DOCX': No such file or directory

第 2 种方法:

$ ls -i
18251 ''$'\251\242''+'$'\246''1.DOCX'
18376 ''$'\251\242''+'$'\246''2.DOCX'
$ find ./ -inum 18251 -delete
find: cannot delete ‘./\251\242+\2461.DOCX’: No such file or directory
$ find ./ -inum 18251 -exec rm -rf {} \;

结果文件依然存在!

第 3 种方法:

$ mv \251\242+\2461.DOCX 1.txt
mv: cannot move ''$'\251\242''+'$'\246''1.DOCX' to '1.txt': No such file or directory

我试过在 adb 下用上面几个命令删,结果依然一样。用 Android 的文件管理器也删不了,也无法重命名。

我这部手机没有 root 权限,也没有电脑,只有另一部有 root 权限的手机,我把这两部手机相连,在另一部手机自带的文件管理器里同样删不掉这些乱码文件,心想也许 root 权限就能删除,但我下载了几个 root 文件管理器,里面都看不到乱码手机的挂载点,用 Termux 在 /dev/下也找不到乱码手机的设备文件,不知道怎么挂载。难道只能恢复出厂设置了吗??

求各位大佬帮帮我!!!

5813 次点击
所在节点    Android
21 条回复
yuhangch
2023-03-10 13:13:16 +08:00
手机 terminal 能按 tab 吗?
AoEiuV020CN
2023-03-10 13:14:00 +08:00
巧了,我昨天研究 java 读写乱码文件名问题就生成了一堆乱码文件,
最后是用 find + rm 删除的,我这命令因为其他文件都是.java 结尾所以这么写,重点只有双引号,
find -name "*a" -o -exec rm "{}" \;
ufs
2023-03-10 13:14:19 +08:00
@yuhangch 可以的
AoEiuV020CN
2023-03-10 13:15:10 +08:00
@yuhangch #1 termux 是自带 tab 按键的, 其他 terminal 如果键盘有 tab 的话也是可能能用的,我以前用百度手机输入法特殊皮肤用过,
hahastudio
2023-03-10 13:16:34 +08:00
3dwelcome
2023-03-10 13:22:14 +08:00
握一把手

/t/841866
Reficul
2023-03-10 13:57:01 +08:00
find xxxx -delete
icatme
2023-03-10 14:14:11 +08:00
你换个 shell 试试?
string2020
2023-03-10 14:26:35 +08:00
你发个文件测试包出来 ,我有空试试
zjsxwc
2023-03-10 14:37:49 +08:00
#获取文件的 index number
$ls -lhi
2808829 -rw-r--r-- 1 zjsxwc zjsxwc 5 Mar 10 14:30 test.txt
#第一列 2808829 就是 index number

#通过 index number 获取文件名,然后删掉这个文件
$rm `find . -inum 2808829`
icatme
2023-03-10 14:57:21 +08:00
@zjsxwc 你看一眼他的第二种方法
string2020
2023-03-10 15:00:40 +08:00
gpt 推荐的是
adb shell rm -rf "$(printf "%q" "文件名为异常编码的文件")"
freethinker
2023-03-10 15:12:35 +08:00
现在这种问题直接问 ChatGPT 就行了啊
----------------
你好,这是 Bing 。我可以帮你解决这个问题。😊

在 Linux 终端删除一个文件名乱码的文件,有以下几种方法¹²³⁴:

- 方法一:使用 find 命令根据文件的 inode 号来删除。每个文件都有一个不变的 inode 号,可以用 ls -li 命令查看。然后用 find -inum inode 号 -delete 命令来删除对应的文件。
- 方法二:使用通配符来匹配文件名。如果文件名只有部分乱码,可以用 rm *或 rm ?等通配符来删除。注意要加上引号防止误删其他文件。
- 方法三:使用图形界面来删除。如果系统支持图形界面,可以直接用鼠标右键选择删除或者拖动到回收站。

希望这些方法对你有帮助。

源: 与必应的对话,2023/3/10(1) linux 删除乱码文件_不愿透露姓名的菜鸟的博客-CSDN 博客. https://blog.csdn.net/Homewm/article/details/105538851 访问时间 2023/3/10.
(2) Linux 下删除乱码文件及文件夹方法_linux 怎么删除乱码文件夹_momoring 的博客-CSDN 博客. https://blog.csdn.net/momoringmok/article/details/105013079 访问时间 2023/3/10.
(3) Linux 删除乱码文件夹_离水的鱼儿的博客-CSDN 博客. https://blog.csdn.net/xuebing1995/article/details/105579479 访问时间 2023/3/10.
(4) linux 上如何删除文件名乱码的文件_linux 文件乱码_自由 de 单车的博客-CSDN 博客. https://blog.csdn.net/ljfrocky/article/details/78434218 访问时间 2023/3/10.
(5) Linux 文件名乱码无法删除文件 - 腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/1952977 访问时间 2023/3/10.
yolee599
2023-03-10 15:24:07 +08:00
一下回答来自 chatGPT:
在 Termux 中,乱码文件名通常是由于文件名编码不兼容所导致的。您可以尝试以下方法删除这些文件:
使用通配符删除:在 Termux 中,您可以使用通配符( wildcard )来删除文件。例如,要删除所有名称为乱码的文件,可以使用以下命令:

rm -rfv *乱码*

这将删除所有名称包含“乱码”的文件和目录。

使用 inode 号删除:在 Termux 中,每个文件和目录都有一个唯一的 inode 号。您可以使用以下命令查看文件的 inode 号:

ls -i

然后,使用以下命令删除指定 inode 号的文件:

find . -inum [inode 号] -exec rm -i {} \;

注意,这将会询问您是否确认删除文件。

在其他系统中删除:如果您有其他系统(如 Windows 或 Linux )可以访问这些文件,您可以尝试在其他系统中删除它们。在另一个系统中,文件名可能会被正确地显示,因此您可以使用通常的方式删除这些文件。
llllljjjjjkk
2023-03-10 16:30:39 +08:00
直接把父目录干掉就可以了
hxy100
2023-03-10 19:21:06 +08:00
@llllljjjjjkk 你看他的第一种方法就是直接干目录,不是干不掉不是。
hxy100
2023-03-10 19:23:05 +08:00
我也来蹲一个结果,估计手机上的 Android 环境(类 Busybox ?)和真实的 Linux 环境有区别吧,你用的这些方式在 Linux 系统上工作良好。手机上居然不行?
vvhy
2023-03-10 19:50:57 +08:00
有意思,是不是文件系统的 bug 啊。试试 MiXplorer ,三 > 添加存储器 > 文档提供程序 > 三 > Termux ,看看能不能删掉
ufs
2023-03-11 00:34:21 +08:00
楼上各位大佬的方法都试过了,没用😭
xiaowoniukai
2023-03-11 07:03:54 +08:00
rm -rf 😆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/922854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX