Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
gawk...| xargs...rm -rf报错,无法删除文件
Experiences and Insight
766
views ·
1
replies ·
To
floor
Go
乐阿兰那
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
Like 0
Favorite
View the author
All Replies
乐阿兰那
deepin
2020-06-01 06:12
#1
Reply
Like 0
View the author
Please
sign
in first
Featured Collection
Change
[Tutorial] deepin25 WSL Offline Installation Guide
UOS AI 2.8 Released! Three New Intelligent Agents & Major Evolution
Solid Q&A | deepin 25 Common Questions – The Immutable System Edition
New Thread
Popular Ranking
Change
WiFi Drivers
Popular Events
More
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/*执行成功)