目录
sh脚本
#!/system/bin/sh
if [ -f "/some_path/cleanup_sdcard_no_delete.txt" ]
then
cd /sdcard
cat "/some_path/cleanup_sdcard_no_delete.txt" | sed 's/|/" ! -iname "/g' | sed 's/\(.*\)/! -iname "\1"/g' | xargs find -maxdepth 1 | grep -vEi "^\\.$|^\\.\\.$" | sed 's/\(^.*$\)/"\1"/g' > /some_path/cleanup_sdcard.log
cat "/some_path/cleanup_sdcard_no_delete.txt" | sed 's/|/" ! -iname "/g' | sed 's/\(.*\)/! -iname "\1"/g' | xargs find -maxdepth 1 | grep -vEi "^\\.$|^\\.\\.$" | sed 's/\(^.*$\)/"\1"/g' | xargs rm -r
fi
cleanup_sdcard_no_delete.txt
格式:
file_name0|file_name1|...|file_nameN
用法
- 装个 busybox (安卓自带的 shell 问题很多, 参考 这里 )
- Tasker 添加执行脚本文件的任务 (Script > Run Shell), Command 为 "PATH=/system/xbin sh /some_path/cleaner.sh" (不含引号),
勾选 "Use Root" 和 "Continue Task After Error", 然后再添加 Tasker 的定时执行什么的就好了, 具体自行研究 Tasker 用法 - 采用白名单模式, 文件名完全匹配 cleanup_sdcard_no_delete.txt 中字符串的文件将不会被删除, 其余全部删除, 文件名可以包含空格
注意事项
- 这次是标准的 rm -r 了, 请在尝试前备份好, 确认无误了再操作
- 脚本中有一个测试的内容, 是输出要删除的文件到一个 log 文件中, 请务必先行确认
转载请注明来自: http://zsaber.com/blog/p/22
既然都来了, 有啥想法顺便留个言呗? (无奈小广告太多, 需审核, 见谅)