linux sh: /bin/cp: Argument list too long 问题解决

问题描述:使用python编程,执行linux中的cp命令,当cp 的目录查过一定的数目会报Argument list too long 的警告,具体的cp 文件的上限以及一个文件夹最多可以创建几个文件个数,可以通过命令

ulimit  -a

查看,如图:

屏幕快照 2011-05-16 下午06.07.17

解决Argument list too long 问题的具体步骤:

1、进入到桌面目录下,新建两个文件夹,文件夹命名为:sourcetarget,目的将source目录下的所有文件复制到target目录下

mkdir source target

2、通过shell脚本或者python脚本写一个for循环在source目录下创建100000个文件(文件数随意,但具体可以创建文件的个数除了文件的大小比能超过硬盘的空间外,还以文件的inodes有关,具体inodes因linux系统不同而不同)

3、通过输入以下命令

mv source/* target/
cp source/* target/
rm source/*
ls source/*

可以看到报错信息为:

-bash: /bin/mv: Argument list too long
-bash: /bin/cp: Argument list too long
-bash: /bin/rm: Argument list too long
-bash: /bin/ls: Argument list too long

4、使用find命令:

find source/ -name "*.txt" -exec mv {} target \;

(第二步创建的文件名都是以.txt结尾的)或者使用

find source/ -name "*.txt" | xargs -i mv {} target/

命令,如果是cp、rm 、ls操作将以上命令里中的mv改为相应的命令即可;

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值