2020/10/23:Linux中执行zip命令碰到“Argument list too long“的解决办法

遇到的问题:

   `执行zip命令碰到"Argument list too long"`

直观的问题描述:

Linux下在使用cp,mv,rm、zip等命令时经常会碰到“Argument list too long”的错误,这主要是因为这些命令的参数太长,即:文件个数过多导致的。

解决办法:

# 方法一:
find dir/ -name "*.bin" | xargs -i zip aa.zip {}
# 方法二:
find dir/ -name "*.bin" -exec zip aa.zip {} \;

其中dir/为源文件夹地址;

"*.bin"为源文件名;

方法一中xargs命令时给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具;-i会将xargs的内容赋值给{}

方法二中-exec参数后面是指执行其后面的命令,-exec;为结尾,由于各个系统中分号的意义不同,因此用\进行转义,即;\,此外,运行过程中{}会被find命令的结果替换。

同样的,rm以及cp的命令如下:

# 删除文件夹下以bin结尾的文件
# 方法一:
find dir/ -name "*.bin" | xargs -i rm {}
# 方法二:
find dir/ -name "*.bin" -exec rm {} \;
# 拷贝文件夹下以bin结尾的文件到目标文件目录下
# 方法一:
find dir/ -name "*.bin" | xargs -i cp {} dir1
# 方法二:
find dir/ -name "*.bin" -exec cp {} dir1 \;

问题

上述方法的确解决了问题,但是对于大量文件,处理速度仍然较慢

本解决办法参考:Linux中执行zip、cp、rm等命令时出现“Argument list too long”的解决方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值