菜鸟科技网

adb命令如何删除文件?

核心命令:adb shell rm

删除文件的核心命令是 rm,它是 "remove" 的缩写,基本语法如下:

adb命令如何删除文件?-图1
(图片来源网络,侵删)
adb shell rm [选项] <文件路径>

删除单个文件

这是最简单的用法,你需要提供要删除文件的完整路径。

示例: 删除手机存储根目录下的 test.txt 文件。

adb shell rm /sdcard/test.txt

提示/sdcard/ 是安卓设备内部存储(或SD卡)的通用挂载路径,大多数情况下都有效,如果你的设备没有SD卡,它通常指向内部存储。

删除多个文件

你可以一次性删除多个文件,只需在命令中列出所有文件路径,用空格隔开。

adb命令如何删除文件?-图2
(图片来源网络,侵删)

示例: 同时删除 /sdcard/Download/ 目录下的 file1.logfile2.log

adb shell rm /sdcard/Download/file1.log /sdcard/Download/file2.log

强制删除(不提示)

在某些情况下,rm 命令可能会因为文件权限或只读属性而失败,这时可以使用 -f (force) 选项来强制删除。

adb shell rm -f <文件路径>

示例: 强制删除一个只读文件 readonly_file.txt

adb shell rm -f /sdcard/readonly_file.txt

递归删除(删除目录及其所有内容)

rm 命令本身不能直接删除一个非空目录,要删除整个目录(包括其下的所有文件和子目录),需要使用 -r (recursive) 或 -R 选项。

adb命令如何删除文件?-图3
(图片来源网络,侵删)

警告:此操作非常危险,一旦执行,目录及其内部所有内容都将被永久删除,且通常无法通过回收站恢复,请务必谨慎使用!

adb shell rm -r <目录路径>

示例:删除 my_app_cache 目录及其所有内容。

adb shell rm -r /sdcard/Android/data/com.myapp/cache/my_app_cache

强制递归删除(最危险的组合)

-f-r 结合使用,可以强制递归删除一个目录,即使目录中的文件有只读属性或受保护。

adb shell rm -rf <目录路径>

示例:彻底清理某个应用的缓存目录(这是一个常见的用法)。

adb shell rm -rf /sdcard/Android/data/com.example.myapp/cache

实用技巧与场景

使用通配符 删除匹配的文件

如果你想删除所有符合某个模式的文件,可以使用通配符 。

示例:删除 /sdcard/DCIM/Camera/ 目录下所有扩展名为 .tmp 的文件。

adb shell rm /sdcard/DCIM/Camera/*.tmp

示例:删除 Download 目录下的所有文件(保留目录本身)。

adb shell rm /sdcard/Download/*

注意: 在 adb shell 中通常需要用引号括起来,或者确保它被 shell 正确解释,在某些较新的 adb 版本或特定设备上,不加引号也可能工作,但加上更稳妥。

先确认,再删除(交互式删除)

rm 命令默认不会在删除前询问确认,为了安全起见,你可以使用 -i (interactive) 选项,让它在删除每个文件前都询问你是否确认。

adb shell rm -i <文件路径>

示例:交互式删除 test1.txt, test2.txt, test3.txt

adb shell rm -i /sdcard/test*.txt
# Shell 会依次询问:
# rm: remove regular empty file '/sdcard/test1.txt'? y
# rm: remove regular empty file '/sdcard/test2.txt'? y
# rm: remove regular empty file '/sdcard/test3.txt'? n

输入 y 确认,输入 n 取消。


重要注意事项

  1. 文件路径必须正确:错误的路径会导致命令失败或删除了错误的文件,在执行 rm -rf 之前,强烈建议先用 ls 命令查看路径下的内容,确认无误后再执行删除操作。

    # 先查看
    adb shell ls /sdcard/Download/
    # 确认无误后,再删除
    adb shell rm -rf /sdcard/Download/
  2. 权限问题

    • 系统分区:尝试删除 /system/boot 等系统分区的文件通常需要 root 权限,普通用户没有权限修改这些区域。
    • 应用私有数据:删除 /data/data/<你的包名>/ 下的文件也需要 root 权限,因为这是每个应用的私有数据空间,受到严格的系统保护。
    • 外部存储:删除 /sdcard/ 下的文件通常不需要 root 权限,除非文件是由其他应用创建并设置了特定权限。
  3. rm -rf 的威力:请再次强调,rm -rf 是一个“毁灭性”命令,一旦输入并回车,数据就会立即消失,在不确定路径时,千万不要轻易使用。

  4. 安全第一:对于重要的数据,最好先通过 adb pull 命令备份到电脑上,然后再进行删除操作。

    # 备份整个 Download 文件夹
    adb pull /sdcard/Download/ C:\backup\Download

命令速查表

命令 功能 示例
adb shell rm <file> 删除单个文件 adb shell rm /sdcard/test.txt
adb shell rm <file1> <file2> 删除多个文件 adb shell rm /sdcard/f1.log /sdcard/f2.log
adb shell rm -f <file> 强制删除文件(忽略不存在的文件等) adb shell rm -f /sdcard/readonly.txt
adb shell rm -r <dir> 递归删除目录及其内容 adb shell rm -r /sdcard/my_folder
adb shell rm -rf <dir> 强制递归删除目录(危险!) adb shell rm -rf /sdcard/temp
adb shell rm "*.tmp" 使用通配符删除所有匹配的文件 adb shell rm "/sdcard/Download/*.tmp"
adb shell rm -i <file> 交互式删除,删除前询问 adb shell rm -i /sdcard/test*.txt

希望这份详细的指南能帮助你安全、高效地使用 adb 命令删除文件!

分享:
扫描分享到社交APP
上一篇
下一篇