Linux中“Argument list too long”解决方法

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. 背景

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

2. 解决方案

“Argument list too long”这个问题的解决主要会用到两个命令,findxargs

2.1 问题:要删除test文件夹下以jpg结尾的文件。

  • 命令1为:
find test/ -name "*.jpg" | xargs -i rm {}
  • 命令2为:
find test/ -name "*.jpg" -exec rm {} \;

2.2 问题:要拷贝test文件夹下以jpg结尾的文件到train目录。

  • 命令1为:
find test/ -name "*.jpg" | xargs -i cp {} train
  • 命令2为:
find test/ -name "*.jpg" -exec cp {} train \;

3. 命令解析

find test/ -name "*.jpg"是指在test文件夹下查找名为*.jpg的文件。

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

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

参考资料

  1. http://man.linuxde.net/xargs

  2. http://www.cnblogs.com/peida/archive/2012/11/14/2769248.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在linux下面工作,有些命令能够大大提高效率。本文就向大家介绍find、grep命令,他哥俩可以算是必会的lin...
    拿破轮胎阅读 4,540评论 0 4
  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功...
    很少更新了阅读 3,101评论 0 0
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,185评论 2 33
  • 原文链接: http://yangbingdong.com/2017/note-of-linux-command/...
    83cb194531a7阅读 4,514评论 0 4
  • 通过《朗读者》,遇见了一位可爱的老先生-许渊冲。 一位96岁的学者,把意境悠远的《诗经》等古文翻译成英文,把经典的...
    暖暖雪008阅读 2,532评论 1 1