当前位置:网站首页>26、管道参数替换命令xargs

26、管道参数替换命令xargs

2022-08-09 12:03:00 51CTO

上文提到了使用locate命令及find命令查找文件,本文主要介绍xargs功能及命令选项;

1、备份配置文件,并添加bak这个扩展名

26、管道参数替换命令xargs_html

26、管道参数替换命令xargs_html_02



xargs 命令是读取标准输入和管道中的数据作为其他命令的参数以来弥补一些命令不支持管道数据输入的不足,一般用于管道;如下所示:

26、管道参数替换命令xargs_分隔符_03

      
      
cat /etc/shadow | echo
  • 1.

26、管道参数替换命令xargs_xargs_04

      
      
cat /etc/shadow | xargs echo
使用xargs命令将cat /etc/shadow 标准化输出通过管道,xargs将这些作为参数提供给
  • 1.
  • 2.

xargs选项:

-d  分隔符 :默认情况想xargs使用空白、tab、回车作为参数分隔传递给后方命令,可以使用-d指定分隔符

26、管道参数替换命令xargs_分隔符_05

-p 交互式命令

26、管道参数替换命令xargs_分隔符_06

-n 表示将xargs生成的命令行参数,每次传递几个给后面的执行

26、管道参数替换命令xargs_find命令_07

-0 表示以\0作为分给付,一般用于find命令,因文件命名不能使用NUM字符串,使用-0,可以避开参数分隔错误

使用方式   find . -name "*.txt" -print0 | xargs -0 echo   (-print0 表示查找的结果后面添加\0而不是换行符

-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替

-P 修改最大的进程数,默认是1,为0时候为as many as it can 

      
      
seq 100 |xargs -i -P10 wget -P /data http://www.baidu.com/image{}.html
并发执行10个进程,http://www.baidu.com/image1.html——http://www.baidu.com/image10.html每次10个
  • 1.
  • 2.

练习:

1、查找/var下属主为root 且属主为mail的所有文件

26、管道参数替换命令xargs_分隔符_08

2、查找/var目录下不属于root、lp、gdm的所有文件

26、管道参数替换命令xargs_find命令_09

3、查找/var目录下最近一周内被修改过,同时属主不为root 也不是postfix的文件

26、管道参数替换命令xargs_html_10

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

26、管道参数替换命令xargs_分隔符_11

5、查找下大于1M且类型为普通文件的所有文件

26、管道参数替换命令xargs_xargs_12

6、查找/etc目录下所有用户都没有写权限的文件

26、管道参数替换命令xargs_分隔符_13

7、查找/etc目录下至少有一类用户没有执行权限的文件

26、管道参数替换命令xargs_find命令_14

8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

26、管道参数替换命令xargs_xargs_15

原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://blog.51cto.com/gavenlee/5557857