gawk...| xargs...rm -rf报错,无法删除文件
Tofloor
poster avatar
乐阿兰那
deepin
2020-06-01 06:11
Author
手机端的终端命令行中运行脚本,试图通过gawk逐行读取文本,经处理后,xargs传递给rm进行删除;已经测试:rm能接收到;但全部报错,无法删除!!!确定有权限!!!
1、gawk '{print "/data/media/0/" $0}' /data/media/0/adzw.txt|$xargs -L 1 -P 10  能够显示出正确的;


2、gawk '{print $0}' /data/media/0/adzw.txt|$xargs -L 1 -P 10 rm -rf 能够删除;gawk -v FS='\n' -v ORS='\0' '{print $0}' /data/media/0/adzw.txt|$xargs -0 -L 1 -P 10 rm -r 也能删除


3、gawk '{print "/data/media/0/" $0}' /data/media/0/adzw.txt|$xargs -L 1 -P 10 rm -rf 报错,提示无法删除~~~
折腾了一天,快崩溃了
~~~~~~~~~~~~~~~~~~~~~~~~设计思路:
这是一个shell脚本的一部分,脚本用于手机终端模拟器中,清理手机垃圾文件。
因为终端模拟器对数组支持不好。所以先将拟删除的文件夹(含路径和通配符)逐行写入一文本文件。在通过gawk读取,添加统一的前缀路径(/data/media/0  sd卡的真实路径,具有rw权限);通过管道xargs传递给rm命令,同时通过-P参数,多发执行。
结果发现,rm命令不能同时处理多个带通配符的文件参数,如rm -rf /data/media/0/a/* /data/media/0/b/* /data/media/0 /c/* /data/media/0/d* ;又发现-L 1 和-n 1参数,rm也拒绝执行(直接用rm -rf /data/media/0/a/*执行成功)

Reply Favorite View the author
All Replies
avatar
乐阿兰那
deepin
2020-06-01 06:12
#1

Reply View the author