bash – 忽略xargs的空结果

考虑这个命令:
ls /mydir/*.txt | xargs chown root

目的是将mydir中所有文本文件的所有者更改为root

问题是,如果在mydir中没有.txt文件,那么xargs会有一个错误,说没有指定路径。这是一个无害的示例,因为正在抛出错误,但在某些情况下,像在我需要在这里使用的脚本,假定一个空白路径是当前目录。所以,如果我从/ home / tom /运行那个命令,然后如果没有ls /mydir/*.txt的结果,并且/ home / tom /下的所有文件都已被更改为root。

那么如何让xargs忽略一个空结果?

对于GNU xargs,可以使用-r或–no-run-if-empty选项:

--no-run-if-empty
-r If the standard input does not contain any nonblanks,do not run the command. normally,the command is run once even if there is no input. This option is a GNU extension.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...