
手机存储空间告急几乎是每个用过一年以上手机的人都会遇到的问题。相册里舍不得删的照片、聊天软件里膨胀的缓存、各个应用下载过的安装包、还有那些不知道怎么冒出来的“其他文件”都在一点一点吃掉手机的可用空间。很多人第一反应是下载一个清理 App结果装完之后发现广告比功能多、权限比工具大、清理完没多久空间又满了甚至有些“清理大师”本身就在后台偷偷占用资源。其实手机清理这件事完全可以做得更简洁、更可控甚至不需要装一堆花里胡哨的软件。这篇文章就来分享一套简约、免费、可复现的手机清理方案围绕“工具选择 清理原理 可执行脚本”三个层面展开。无论你是普通用户还是喜欢折腾命令行工具的开发者都能从中找到适合自己的清理思路。读完你不仅能解决手机存储告急的问题还能避开那些打着清理旗号的坑。1. 手机越来越满问题到底出在哪先别急着装工具我们得先搞清楚手机空间究竟被什么吃掉了。很多人的第一反应是“照片太多”实际上照片只是其中一部分。根据大多数手机用户的实际使用情况占用存储的“大头”往往是以下几类微信 / QQ 等聊天软件的缓存和接收文件。聊天软件会把图片、视频、语音、文档自动保存到本地日积月累非常可观。相册中的重复照片、截图、录屏、连拍照片。各类应用运行时产生的缓存文件比如图片加载缓存、视频预加载缓存、网页离线包。系统更新包和安装包残留。很多手机下载了系统更新包安装完成后没有自动删除。应用卸载后残留的目录。有些应用卸载后会在存储目录里留下空文件夹或少量数据文件。各类“其他文件”包括日志文件、数据库碎片、临时文件等。这当中照片和视频属于“用户主动产生的数据”删不删取决于个人意愿而缓存、临时文件、卸载残留则属于“可以安全清理的垃圾”。一个合格的清理工具核心能力就是准确识别这两类文件把可以清理的部分挑出来而不是把所有数据一概而论。另外还有一个经常被忽略的问题很多清理工具本身会不断在后台运行甚至频繁弹广告、推送信息反而消耗电量和流量。这就是为什么“简约”两个字在清理工具领域特别重要——一个好工具应该只在需要时工作而不是常驻后台。2. 清理工具的原理与选型标准2.1 清理工具是怎么工作的市面上大多数清理工具底层原理并不神秘。它们做的事情本质上分三步扫描存储分区读取文件系统和目录结构。根据预设规则识别“垃圾文件”比如缓存目录下的文件、临时文件夹、过期的日志文件、空目录以及应用卸载后遗留的包名目录。列出可清理项由用户确认后删除。看起来很简单但难点在于“识别规则”。不同应用的缓存目录命名千差万别系统文件和安全边界更是一步都不能退让。如果一个清理工具误把某应用的离线数据当成垃圾删掉轻则重新下载重则导致应用数据损坏。这也是为什么清理工具对权限的要求往往很高——它需要读取整个存储卡的内容。2.2 简约免费的清理工具应该满足什么标准我给“值得收藏”的清理工具总结了几条标准供大家参考标准说明免费且无广告真正的免费而不是下载免费、使用时被迫看广告权限克制不需要常驻后台按需打开、扫描、清理识别准确能区分缓存垃圾和用户数据不随意删除照片、文档界面简洁打开就能看明白哪些能清、哪些不能清开源可审查理想情况下能查看源码至少确保不会偷偷上传隐私数据按照这个标准我们其实不需要在搜索排行榜上找那些下载量夸张的“清理加速大师”。很多开源工具、极简工具甚至手机自带的“存储管理”功能都已经足够好用。2.3 把“工具”范围扩大一点除了安装一个 App还有一类“工具”经常被忽略那就是命令行工具。如果你在手机上装了 Termux或者能用电脑通过 adb 连接手机那么完全可以用 shell 命令直接查看存储占用、清理缓存文件。这种方式不仅免费、无广告而且每一步操作都是透明的比任何图形化工具都更“简约”。后面的实战环节我会提供一个可以直接运行的清理脚本并解释每一条命令的作用。3. 核心清理逻辑哪些文件可以放心清理在动手清理之前必须先建立一套判断标准。我把手机存储里的文件分为三类放心清理、谨慎清理、不要动。3.1 放心清理这类文件删除后不会影响应用正常使用最多造成一次重新加载属于真正的“垃圾文件”应用缓存目录/sdcard/Android/data/对应应用/cache图片缩略图缓存很多手机尤其是 MIUI、EMUI 等定制系统会在.thumbnails目录下生成大量缩略图。临时下载目录下载管理器中的过期安装包、压缩包。日志文件*.log结尾的日志绝大多数可以删除。空目录卸载应用后留下来的空文件夹。3.2 谨慎清理这类文件有可能包含用户数据删除前需要人工确认聊天软件接收的文件微信中的“文件”目录可能包含工作文档删除后原文件会丢失。应用数据目录/sdcard/Android/data/对应应用/files很多应用会把账号配置、本地数据库放在这里不可一刀切。相册回收站很多相册删除照片后会进入“最近删除”占用空间但还能恢复。确认不需要后再清空。3.3 不要动系统分区文件/system、/vendor等目录属于系统分区普通用户不要尝试删除。应用本体安装包系统应用和用户应用的 APK 文件由系统管理不要手动删除/data/app下的内容。正在使用的数据库比如微信的数据库文件删了可能导致聊天记录异常。你没有把握的文件拿不准就是最好的不删除理由。为了更直观我把常见的清理项整理成了一张速查表目录/文件类型处理建议Android/data/包名/cache应用缓存可清理Android/data/包名/files应用数据谨慎处理DCIM/.thumbnails缩略图缓存可清理Download/*.apk安装包确认后可清理Pictures/Screenshots截图手动确认MIUI/Gallery/cloudCache云相册缓存可清理tencent/MicroMsg微信数据谨慎处理log/*.log日志可清理/data应用私有数据非 root 不可访问不要尝试4. 环境准备组合出你自己的“清理工具箱”前面说了那么多理论接下来进入实践环节。我这里采用“手机自带清理 Termux 命令行脚本 adb 扩展”的组合方案。整套方案免费、无广告、可控而且对不熟悉命令行的朋友也很友好。4.1 环境说明本次实战的参考环境如下手机系统Android 11 及以上分区存储限制较多但清理自己目录下的文件没问题Termux 版本较新版本即可不需要特定版本号电脑环境可选Windows / macOS / Linux 都可行安装 adb 工具手机需要打开“开发者模式”中的 USB 调试仅当使用 adb 时如果你不想装 Termux也可以用系统自带的“文件管理”App 配合“存储设置”完成大部分清理。不过如果想把清理工作做到“又稳又透”命令行脚本是更好的选择。4.2 Termux 安装与基本准备Termux 是一款 Android 平台上的终端模拟器相当于把 Linux 的命令行环境搬到了手机里。安装后执行以下命令更新基础软件包pkg update pkg upgrade -y如果希望脚本支持中文显示可以顺便安装pkg install -y ncurses-utils这里需要说明的是Termux 默认只会访问自己目录下的存储想要读取/sdcard下的文件需要先执行一次授权。在 Termux 中运行termux-setup-storage手机会弹窗请求存储权限点击允许即可。授权后会出现~/storage/shared目录指向手机的内部存储根目录。5. 完整实战写一个极简手机清理脚本5.1 创建项目目录和脚本在 Termux 中创建tools目录用来存放清理脚本mkdir -p ~/tools cd ~/tools然后创建脚本文件cleaner.shnano cleaner.sh编辑器中输入以下内容。脚本逻辑分成“扫描模式”和“清理模式”默认只扫描不删除避免误操作#!/data/data/com.termux/files/usr/bin/bash # # 文件名: cleaner.sh # 功能: 查看存储占用并清理常规缓存文件 # 用法: # bash cleaner.sh --scan # 只分析磁盘占用不删除 # bash cleaner.sh --clean # 执行安全清理 # bash cleaner.sh --help # 查看帮助 # STORAGE_BASE~/storage/shared # 实际路径为 /data/data/com.termux/files/home/storage/shared # 输出分隔线 print_line() { echo ---------------------------------------- } # 扫描模式展示存储占用情况 scan_mode() { echo 存储空间概览 df -h /sdcard | awk {print $1, $2, $3, $4, $5, $6} print_line echo 内部存储各目录占用 Top 20 du -sh ${STORAGE_BASE}/* 2/dev/null | sort -rh | head -20 print_line echo 缓存目录分布前10 find ${STORAGE_BASE}/Android/data -maxdepth 2 -type d -name cache 2/dev/null | head -10 } # 清理模式执行安全删除 clean_mode() { echo 开始安全清理 print_line # 1. 清理应用缓存目录 echo [1/4] 清理应用 cache 目录... find ${STORAGE_BASE}/Android/data -maxdepth 2 -type d -name cache \ -exec rm -rf {} \; 2/dev/null echo 完成 # 2. 清理图片缩略图缓存 echo [2/4] 清理相册缩略图缓存... rm -rf ${STORAGE_BASE}/DCIM/.thumbnails 2/dev/null echo 完成 # 3. 清理 Download 目录下的 APK 文件 echo [3/4] 清理下载目录的安装包... find ${STORAGE_BASE}/Download -maxdepth 1 -type f -name *.apk \ -exec rm -i {} \; 2/dev/null echo 完成 # 4. 清理日志文件限定常用目录 echo [4/4] 清理 log 结尾的临时日志... find ${STORAGE_BASE} -maxdepth 3 -type f -name *.log \ -exec rm -f {} \; 2/dev/null echo 完成 print_line echo 清理结束返回存储概览 df -h /sdcard } case $1 in --scan) scan_mode ;; --clean) clean_mode ;; --help) echo 用法: bash cleaner.sh [--scan|--clean|--help] ;; *) echo 未指定参数使用 --scan 进入扫描模式 scan_mode ;; esac5.2 解释脚本的关键点很多新手看到rm -rf会紧张这个担心完全可以理解。我来逐段说明第一处find ... -name cache -exec rm -rf {} \;这个命令会查找Android/data目录下第二层的cache目录并删除。Android 应用的标准缓存目录就是Android/data/包名/cache这类目录里的内容随时可以重新生成。删除它不会影响应用账号、聊天记录或文档。第二处rm -rf DCIM/.thumbnails.thumbnails是相册的缩略图缓存目录系统会在打开相册时自动重建。删除后唯一的影响是首次打开相册时缩略图会重新加载会稍微慢一点。第三处find Download -name *.apk -exec rm -i {} \;这里特意加了-i参数也就是“交互式确认”。因为 Download 目录下可能有你特意保存的安装包删除前逐个确认更安全。如果你确定不需要保留任何安装包可以把-i去掉。第四处find ... -name *.log日志文件是典型的垃圾文件但为了防止误删重要应用的日志某些应用需要通过日志定位问题脚本限定了maxdepth 3只清理浅层目录下的日志不深入应用私有数据目录。5.3 运行脚本先给脚本添加执行权限chmod x cleaner.sh然后先运行扫描模式查看当前存储占用bash cleaner.sh --scan预期会输出类似下面的内容 存储空间概览 Filesystem Size Used Avail Use% Mounted on /dev/fuse 512G 87G 425G 17% /storage/emulated ... 内部存储各目录占用 Top 20 1.2G /data/data/com.termux/files/home/storage/shared/Android 800M /data/data/com.termux/files/home/storage/shared/DCIM 350M /data/data/com.termux/files/home/storage/shared/Download ...这里数字和路径会因手机实际内容而不同关键是确认哪些目录占用最大再决定是否执行清理。确认无误后执行bash cleaner.sh --clean清理结束后再看一眼df -h的可用空间通常会有明显变化。如果你的手机微信、淘宝这类应用使用频繁缓存清理效果会特别明显。6. 进阶玩法用 adb 在电脑端分析存储占用如果你手边有电脑也可以不装 Termux直接用 adb 查看和管理手机存储。这种方式尤其适合需要给年纪大的家人清理手机的场景——在电脑上操作看得更清楚。6.1 安装 adb 并连接手机在电脑上安装平台工具platform-tools不同系统的安装方式不一样这里以常见情况为例Windows下载 platform-tools 压缩包解压后进入目录。macOSbrew install android-platform-toolsLinuxsudo apt install adbDebian/Ubuntu手机打开“开发者选项”和“USB 调试”后连接电脑执行adb devices第一次连接时手机会弹出确认框勾选“始终允许”后确认。确认设备在线后就可以用命令查看存储目录了。6.2 查看手机存储占用 Top 目录adb shell du -sh /sdcard/* 2/dev/null | sort -rh | head -20这个命令会列出/sdcard下占用最大的 20 个目录。如果想看某一个具体目录内部的详细占用可以继续深入adb shell du -sh /sdcard/Android/data/* 2/dev/null | sort -rh | head -206.3 远程执行清理脚本在电脑上写好 shell 脚本传给 adb 执行adb push cleaner.sh /sdcard/不过要注意直接执行脚本时如果对象是/sdcard/Android/data里的 cache 目录Android 11 的分区存储机制可能会限制非系统进程访问其他应用的数据目录此时清理效果会打折扣。这套方法更适合运行在“允许访问所有文件”权限的 App 中或者通过 Termux 这类拥有存储权限的终端来执行。7. 常见问题与排查思路在实际清理过程中很容易遇到一些意外情况。我把高频问题整理成一张表方便你快速定位。问题现象常见原因解决思路清理后空间几乎没有变化占用大头是照片、视频或应用数据不是缓存垃圾使用du -sh逐个目录排查真正的占用大头运行脚本提示 Permission deniedTermux 未授权存储访问或 Android 分区存储限制先运行termux-setup-storage或者检查是否授予“所有文件访问”权限清理后部分图片打开变慢相册缩略图缓存被删除系统需要重新生成属于正常现象重新打开相册等待加载完成即可微信聊天记录中的图片打不开清理时误删了微信的 files 目录数据谨慎处理tencent目录不要对 files 目录执行批量清理应用缓存目录找不到Android 高版本限制了其他应用读取 data 目录改用 Termux 或 adb 观察避免反复扫描系统自带清理显示空间不足但脚本扫描空间充足系统保留了一部分“其他文件”在高权限分区重启手机或检查df -h的/data分区占用7.1 误删文件后的应急方案如果清理后发现重要文件被误删第一时间停止手机的一切写入操作。有条件的话立即用数据恢复工具尝试找回但成功率取决于文件是否被新数据覆盖。这提醒我们执行任何清理之前先备份真正重要的资料这才是最稳妥的操作。8. 最佳实践与工程建议8.1 清理前先备份无论使用哪一套方案都建议先做三层备份照片和视频上传云相册或复制到电脑指定目录。工作文档聊天软件接收的文件单独导出。聊天的关键记录使用自带备份功能或迁移到新手机备份文件。8.2 把清理做成习惯而不是救火手机空间告急往往是长期累积的结果。与其等到“存储空间不足”才清理不如定期执行扫描每周用du -sh看一眼各个目录占用趋势。每月执行一次安全清理脚本。每季度整理一次相册删除截图和模糊照片。8.3 脚本也要规范化如果你把清理脚本保留在 Termux 里长期使用建议给它加版本号和注释避免时间久了忘记脚本的作用。例如在脚本开头维护一行版本信息# version: 1.0.1 # last update: 2025-01-01 # change log: 增加 Download 目录交互式确认同时脚本里不要写死绝对的绝对路径尽量使用~/storage/shared这样的相对根路径方便迁移到其他设备。8.4 不要为了“清理”而安装全家桶我见过很多人手机里同时装了 3 个清理软件结果每个清理软件都有自己的后台服务和推送通道占用反而更多。清理工具只保留一个甚至可以不装用系统自带的“存储管理”和几段命令就足够了。8.5 安全红线最后强调几条安全红线请务必记住不要随意删除/data下的应用私有数据除非你清楚后果。不要使用 root 权限批量清理系统目录容易导致系统无法开机。不要授权给来源不明的清理工具“无障碍服务”权限以免隐私泄露。清理后如果系统出现异常优先重启严重时恢复出厂设置前务必完成数据备份。9. 总结手机清理并不是一个复杂的技术难题关键在于选对工具、理解原理、守住安全边界。本文从手机存储被占用的根本原因出发分享了一套简约、免费、可复现的清理方案以手机自带功能为基础配合 Termux 命令行脚本或电脑 adb 工具用透明、可控的方式完成扫描和清理。文中提供的cleaner.sh脚本采用“默认扫描、交互式确认删除”的设计兼顾了安全性和可操作性希望能帮你解决存储空间告急的问题。如果你之前习惯用各种“一键清理”App不如借着这次机会换一个思路试着用命令行工具掌控自己的手机存储。理解每一行命令在做什么之后你会发现自己比任何清理软件都可靠。如果这篇文章对你有所帮助可以收藏备用下次手机提示空间不足时照着操作一遍就行。