有任何办法能删掉安卓手机上 GBK 的文件名吗?

2022-03-21 15:29:54 +08:00
 3dwelcome
不小心用代码生成了几个 GBK 文件名,结果发现没任何有效办法能删掉。

安卓文件系统都是 UTF8 的,GBK 文件都是显示乱码。删文件不行,直接删文件夹和目录也不行。

一删就报错误,死活删不掉,真是晕死。
6098 次点击
所在节点    Android
23 条回复
yehoshua
2022-03-21 15:30:33 +08:00
Shell 里面删除呢
3dwelcome
2022-03-21 15:31:42 +08:00
@yehoshua 指 ADB shell 吗?我试过好像也不行,ADB 默认都是 UTF8 输出。

我再去试试。
lakehylia
2022-03-21 16:09:42 +08:00
如果是混合名称,有中文有英文的,可以 adb rm xyy* 。或者你把目录下面的文件都拷贝到别的地方,用 adb rm /rf folderName
yehoshua
2022-03-21 16:11:38 +08:00
@3dwelcome 要不就试试 Termux ,可能支持 GBK
seers
2022-03-21 16:15:32 +08:00
之前在 Linux 下是用 inode 删,理论上通用
lisongeee
2022-03-21 16:58:30 +08:00
可以试试文件遍历删除
3dwelcome
2022-03-21 16:59:12 +08:00
谢谢楼上几位,我晚上在小米平板上各种方法都试一下,头大。
unclebear
2022-03-21 17:11:07 +08:00
试试在你生成文件的那行代码下面加一行删除操作呢
AoEiuV020CN
2022-03-21 17:42:43 +08:00
代码生成的就用代码删除呗,
列出来按索引获取文件删除,
learningman
2022-03-21 19:12:34 +08:00
用 inode 删除就好
james2013
2022-03-21 19:17:52 +08:00
用代码删
Reficul
2022-03-21 19:33:32 +08:00
find xxx --delete
3dwelcome
2022-03-22 03:48:47 +08:00
由于机器上没有 root ,很遗憾,这次删除失败。

用 adb 删,报错 No such file or directory
用代码删,unlink 和 rmdir 都返回-1
用 inode 删,没有 root 做不到,adb 的 rm 不支持 inode 参数。
用混合名称通配符删,一样不行。

彻底放弃。
acess
2022-03-22 11:56:00 +08:00
可以去找个 busybox 啊,比如 osmosis 编译的,原来在 magisk 模块仓库里的
acess
2022-03-22 11:56:20 +08:00
busybox 可以复制到 /data/local/tmp 里
3dwelcome
2022-03-22 13:05:18 +08:00
@acess 好的,我晚上试试,也许可以。
tiny1994095
2022-03-22 14:18:58 +08:00
请问是什么安卓系统?
或许可以试试进入 RCE 里头操作看看?
dongpengfei1
2022-03-22 15:18:20 +08:00
ls -li
find . -inum 1490945 -exec rm {} -rf \;
你试试
3dwelcome
2022-03-22 23:34:54 +08:00



@dongpengfei1 试了一下别的文件都可以,就这个乱码文件不行。
dongpengfei1
2022-03-24 17:31:31 +08:00
@3dwelcome 那就没办法了,我刚刚也试了一下,这条命令没有 root 就不能删带特殊字符的文件,使用 root 就可以删。
你找找其他的文件管理器能不能把它删了吧。

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

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

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

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

© 2021 V2EX