84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
今天了解到它们结合在一起所产生的强大的力量.
结合实用,应当能够给日常实用Linux带来效率的提升, 有哪些例子呢?
走同样的路,发现不同的人生
xargs可以看做一个循环辅助函数,它主要解决的就是在linux环境里,直接使用通配符导致参数过多,命令无法执行的情况。同时结合find,可以实现更多灵活性。比如:
# 把所有以.json为后缀的文件mv到bak目录;如果json文件太多,直接mv *.json bak是不行的。 find . -type f -name "*.json"|xargs -n10 -I% mv % bak # 把所有json文件重命名为以BAK结尾。find可以使用正则匹配,从而实现更多灵活性。 find . -type f -name "*.json"|xargs -n10 -I% mv % %.BAK # 对所有json文件进行sed替换,把其中的_id都换成ID,同时原文件变成.bak后缀文件。 find . -type f -name "*.json"|xargs -n3 sed -i.bak 's/\_id/ID/g'
其中 -n number 指定每次给后面的命令多少参数,以上面第一个为例子,如果find到1w个文件,每次执行mv都是3个3个的mv。-I replstr指定替换字符串,比如我们指定replstr为%,那么在执行后面的命令时,%将会替换成传入参数的实际内容。注意replstr可以替换的字符串长度最大为255 byte在某些系统上,xargs可以使用-P maxprocs开启并行模式。在多核机器上应该会有明显的速度提升。
-n number
-I replstr
-P maxprocs
多线程下载 cat url_file |xargs -n 1 -P 100 wget文件每行一个url 100 wget 同时下载
我一般用find -name *.pyc|xargs rm -rf {}来清理项目目录下生成的pyc文件
xargs可以看做一个循环辅助函数,它主要解决的就是在linux环境里,直接使用通配符导致参数过多,命令无法执行的情况。同时结合find,可以实现更多灵活性。
比如:
其中
-n number
指定每次给后面的命令多少参数,以上面第一个为例子,如果find到1w个文件,每次执行mv都是3个3个的mv。-I replstr
指定替换字符串,比如我们指定replstr为%,那么在执行后面的命令时,%将会替换成传入参数的实际内容。注意replstr可以替换的字符串长度最大为255 byte在某些系统上,xargs可以使用
-P maxprocs
开启并行模式。在多核机器上应该会有明显的速度提升。多线程下载 cat url_file |xargs -n 1 -P 100 wget
文件每行一个url 100 wget 同时下载
我一般用find -name *.pyc|xargs rm -rf {}来清理项目目录下生成的pyc文件