![]() |
1
8
在findutils的较新版本中,find可以完成xargs的工作(包括glomming行为,这样就可以根据需要使用尽可能多的grep进程):
使用
|
![]() |
2
6
如果存在文件名包含空格的风险,您应该记得使用-print0标志与xargs的-0标志一起查找:
|
![]() |
3
4
xargs不会为每个文件启动新进程。它把论点拼凑在一起。请查看xargs的-n选项,它控制传递给每次执行子命令的参数数量。 |
![]() |
4
0
我看不出来
由于我认为“文件太多”是shell限制,因此for循环也会失败。 话虽如此,我总是让xargs完成将参数列表拆分为可管理部分的繁重工作,如下所示:
它不会为每个文件启动进程,而是为每组文件启动进程。 |
![]() |
5
0
好吧,我也有同样的问题,但似乎我想到的一切都已经提到了。主要有两个问题。执行globs是昂贵的,在一百万个文件目录上执行ls需要花费很长时间(在我的一台服务器上需要20多分钟),在一百万文件目录上进行ls*需要很长时间,并且会因“参数列表太长”错误而失败。
似乎对这两个问题都有帮助。此外,如果你需要对这些文件执行更复杂的操作,你可以考虑将你的东西编写成多个线程。这是编写CLI脚本的python入门。 http://www.ibm.com/developerworks/aix/library/au-pythocli/?ca=dgr-lnxw06pythonunixtool&S_TACT=105AGX59&S_CMP=GR |
![]() |
sk123 · Shell脚本-如何在循环中显示变量名及其值 1 年前 |
|
sai · unix中使用python进行数据重组 1 年前 |
![]() |
FangQ · 如何使用jq打印由制表符“\t”分隔的JSON数组元素 1 年前 |
|
ROHAN · 我想显示包含一个括号的行,包括它的开头或结尾 1 年前 |
![]() |
Geomicro · 删除模式sed之间的逗号 1 年前 |