您的位置:首页 > 运维架构 > Linux

linux argument list too long的解决办法

2015-09-30 13:58 549 查看
工作中遇到一个小问题,有一个目录下的文件太多(6位数),需要进行删除,但不是全部删除,而是满足一定条件的文件名才删除,此时使用 ls xxx* | xargs rm 已经无能为力了,于是只能写一个小的shell来删除,如下:

#!/bin/bash

for f in `ls /root `
do

c=`echo $f | grep -c "sendmsg"`

if [ $c -eq 1 ]; then
echo $f;
rm  "/root/$f"
else
echo "-";
fi

done


第6行
c=`echo $f | grep -c "sendmsg"`
目的是获取满足条件的个数,因为是for loop 方式,每次处理一个文件,所以这里c获取的值只可能为0或1

之后的事情就不用再说了,mark以供参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: