在Linux中使用xargs命令实例

xargs的是Linux/Unix的强大的命令来建立和执行从标准输入命令行。这需要一个命令的输出,并把它作为另一个命令的参数。 xargs的取标准输入,由空格或换行符分隔,并与任何参数随后项执行指令的一个或多个次。标准输入忽略空行。

例子

例1 拷贝大量文件到另一个文件夹中。
我们需要复制文件的一个长长的清单,在这种情况下cp命令有时失败,错误“参数列表太长”。我们可以用xargs的做任务。
# find /home/linuxman/public_html/youcl.com/ -type f | xargs -n1 -i cp {} /var/www/backup/
例2:从文件夹中删除多个文件。
我们requird有些时候,从文件夹中删除大量文件。下面的例子将删除/ var / log目录的所有.log文件。
# find /var/www/tmp/ -type f | xargs rm -f
上面的命令将在失败与命名空间,以删除文件。在xargs命令处理空格试试下面的命令。
# find /var/www/tmp/ -type f -print0 | xargs -0 rm -f
实施例3:计算在多个文件中的行号。
下面的例子将计算行数在/opt目录及其子目录下的每个.txt文件
# find /opt -name "*.txt" | xargs wc -l
为了处理其在那里的名字空间的文件,使用下面的命令。
# find /opt/ -name "*.log" -print0 | xargs -0 wc -l
例4:使所有configuratin文件的备份。
如果你想使你的系统中所有configurtion文件(扩展名的.conf)的备份,使用下面的命令。
# find / -name "*.conf" |  xargs tar czf  config.tar.gz
# ls -l config.tar.gz
-rw-r--r--. 1 root root 193310 Apr  1 13:26 config.tar.gz
例5.使用custome定界符与xargs的。
我们可以有也xargs的命令定制delemeter使用,默认情况下它使用的空间和新的行分隔符。使用-d参数来定义分隔符。
# echo "1,2,3,4,5" | xargs -d, echo
输出:
1 2 3 4 5
实施例6:在与xargs的sepreate线显示输出。
在实施例5输出中是在单线示出,我们也可以指定要显示在seprate线中的每个输出。
# echo "1,2,3,4,5" | xargs -d, -L 1 echo
输出:
1
2
3
4
5
例7:在文件名或路径处理空白。
要正确处理空格在名称中使用-print0与find命令和-0与作为参数的xargs命令。
#  find /tmp -print0 | xargs -0 -L 1 echo
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏