[实践OK]linux系统shell下的xargs 命令教程之xrags删文件提示确认,以及将文本里的多行目录名建立成文件夹。

jackxiang 2019-8-23 10:35 | |
xargs的作用在于,大多数命令(比如rm、mkdir、ls)与管道一起使用时,都需要xargs将标准输入转为命令行参数。
echo "one two three" | xargs mkdir
上面的代码等同于mkdir one two three。如果不加xargs就会报错,提示mkdir缺少操作参数。

一)xrags删文件提示确认:
使用xargs命令以后,由于存在转换参数过程,有时需要确认一下到底执行的是什么命令。
-p参数打印出要执行的命令,询问用户是否要执行。

echo 'one two three' | xargs -p rm -rf
rm -rf one two three ?...y
上面的命令执行以后,会打印出最终要执行的命令,让用户确认。用户输入y以后(大小写皆可),才会真正执行。

-t参数则是打印出最终要执行的命令,然后直接执行,不需要用户确认。
echo 'one two three' | xargs -t rm -rf



二)文本里的多行目录名建立成文件夹:
如果xargs要将命令行参数传给多个命令,可以使用-I参数。

-I指定每一项命令行参数的替代字符串。
$ cat foo.txt
one
two
three

$ cat foo.txt | xargs -I file sh -c 'echo file; mkdir file'
one
two
three

$ ls
one two three
上面代码中,foo.txt是一个三行的文本文件。我们希望对每一项命令行参数,执行两个命令(echo和mkdir),使用-I file表示file是命令行参数的替代字符串。执行命令时,具体的参数会替代掉echo file; mkdir file里面的两个file。


来自:http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/10268/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-8-23 10:36
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]