V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3dwelcome
V2EX  ›  Android

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

  •  
  •   3dwelcome · 2022-03-21 15:29:54 +08:00 · 10871 次点击
    这是一个创建于 1008 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不小心用代码生成了几个 GBK 文件名,结果发现没任何有效办法能删掉。

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

    一删就报错误,死活删不掉,真是晕死。
    23 条回复    2022-03-26 02:47:41 +08:00
    yehoshua
        1
    yehoshua  
       2022-03-21 15:30:33 +08:00 via iPhone
    Shell 里面删除呢
    3dwelcome
        2
    3dwelcome  
    OP
       2022-03-21 15:31:42 +08:00
    @yehoshua 指 ADB shell 吗?我试过好像也不行,ADB 默认都是 UTF8 输出。

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

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

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



    @dongpengfei1 试了一下别的文件都可以,就这个乱码文件不行。
    dongpengfei1
        20
    dongpengfei1  
       2022-03-24 17:31:31 +08:00
    @3dwelcome 那就没办法了,我刚刚也试了一下,这条命令没有 root 就不能删带特殊字符的文件,使用 root 就可以删。
    你找找其他的文件管理器能不能把它删了吧。
    cczhrd
        21
    cczhrd  
       2022-03-25 11:48:38 +08:00
    是这个意思?直接 rm * 好像可以 ![]( https://imgur.com/a/SEU0XYJ)
    3dwelcome
        22
    3dwelcome  
    OP
       2022-03-25 12:36:34 +08:00
    @cczhrd 谢谢,我晚上试试。
    3dwelcome
        23
    3dwelcome  
    OP
       2022-03-26 02:47:41 +08:00
    @cczhrd 还是不行,一直报错“No such file or directory”。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1283 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.