我们看看exec和xargs都是如何传参数的。首先看看exec:
ls
index.skin1 skin1
find -type f -exec echo file {} ;
file ./skin1
file ./index.skin1
很明显,exec是对每个找到的文件执行一次命令,除非这单个的文件名超过了几k,否则不会出现命令行超长出错的问题。
我们再看看xargs:
ls
index.skin1 skin1
find -type f | xargs echo
./skin1 ./index.skin1
这里大家看到,xargs是把所有找到的文件名一股脑的转给命令
-exec的缺点是每处理一个文件/目录,都要启动一次命令,效率不好; 格式麻烦,必须用 {} 做文件的代位符,必须用 ; 作为命令的结束符;

相关文章:

  • 2022-12-23
  • 2021-09-19
  • 2022-12-23
  • 2021-11-30
  • 2021-11-24
  • 2021-08-16
猜你喜欢
  • 2022-12-23
  • 2021-12-16
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-08-31
相关资源
相似解决方案