xargs是一个Linux/Unix功能强大的命令,用于从标准输入构建和执行命令行。它接受一个命令的输出并将其作为另一个命令的参数传递。xargs采用标准输入,用空格或换行符分隔,并使用后面跟有项目的任何参数执行命令一次或多次。标准输入上的空行将被忽略。
例子
示例1:将大量文件复制到另一个文件夹。
有时我们需要复制一长串文件,在这种情况下,cp命令失败,错误“参数列表太长”。我们可以使用xargs来完成这项任务。
# find /home/linuxman/public_html/tecadmin.net/ -type f | xargs -n1 -i cp {} /var/www/backup/
示例2:从文件夹中删除多个文件。
有时我们要从文件夹中删除大量文件。下面的示例将从/ 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:将custom delimeter与xargs一起使用。
我们也可以使用自定义删除器和xargs命令,默认情况下它使用空格和新行作为分隔符。使用-d参数定义分隔符。
# echo "1,2,3,4,5" | xargs -d, echo
输出
1 2 3 4 5
示例6:使用xargs以sepreate行显示输出。
在示例5中,输出以单行显示,我们还可以指定在单独行中显示每个输出。
# 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
本篇文章到这里就已经全部结束了,更多精彩内容大家可以关注php中文网的其他相关栏目教程!!!
以上是Linux中的xargs命令及示例的详细内容。更多信息请关注PHP中文网其他相关文章!