美文网首页
管道和xargs

管道和xargs

作者: 啊哈_6377 | 来源:发表于2020-04-21 20:48 被阅读0次

打卡作业:

1)在当前目录,所有的普通文件中,搜索文件名含有istester这个词

find ./  -type f | grep istester (只会搜索出来文件名中包含istester,非文件内容)

find ./ -type f | xargs grep  istester <==>find ./ -type f | xargs -i grep istester {}

(搜索出文件内容中含有istester的文件,输出文件和符合条件字符的行)

2)在当前目录,移动1天以内的所有内容到 ~/idoxu 目录

find ./ -atime -1 | xargs -i mv {} ~/idoxu

3)在当前目录,移动10天以前的所有内容到 ~/idoxu 目录

find . -atime +10 | xargs -i mv {} ~/idoxu

4)在/usr/isTester目录,移动文件大小为零的文件到~/idoxu目录下的 0size/ 文件夹

find /usr/istester -size 0 | xargs -i mv {} ~/idoxu/0size/

5)在/usr/isTester目录,移动大于200M的文件到 ~/idoxu目录下的 200size/ 文件夹

find /usr/istester -size 200M -type f | xargs -i mv {} ~/idoxu/200size/

思考总结:

1、" | "

作用:将左边命令的结果输出作为左边命令的输入

类似符号还有:

& 作用:将命令放到后台执行,如:redis-server &

&& 作用:左边命令执行成功后,执行右边的命令,如:echo "istester_a" >>idoxu/istester002.ini && echo "istester_b" >>idoxu/istester002.ini

||  作用:当左边命令执行失败后,才执行右边命令

2、"xargs"

作用:1、常和管道命令|一起使用,解决有的命令不支持使用管道来传递参数

    2、可将文本输入转换为其他格式输出

使用:

1、cat idoxu/new.ini | xargs  多行格式化为一行输出

2、cat idoxu/new.ini | xargs -n2  格式化为一行两个输出

3、cat idoxu/new.ini | xargs -n2 -ds  格式化按s分割,一行两个输出

4、find ./ -name "istester001*" | xargs -i mv {} /root/test_shen  -i 默认使用{}将前一命令的返回值传入到后已命令

5、find ./ -name "istester001*" | xargs -I [] rm -rf []  -I可指定符号代替前一命令的返回值

6、find ./ -name "istester001*" | xargs -i -p mv {} /root/test_shen -p参数是执行时提示确认是否执行

相关文章

网友评论

      本文标题:管道和xargs

      本文链接:https://www.haomeiwen.com/subject/mmqmihtx.html