考虑以下命令:
ls /mydir/*.txt | xargs chown root
目的是将所有文本文件的所有者更改mydir
为root
问题是,如果其中没有.txt
文件,mydir
则xargs会引发错误,指出未指定路径。这是一个无害的示例,因为会引发错误,但是在某些情况下,例如在我需要在此处使用的脚本中,假定空白路径为当前目录。因此,如果我/home/tom/
从那时开始运行该命令,如果没有结果,ls /mydir/*.txt
并且所有文件/home/tom/
的所有者都更改为root。
那么,如何让xargs忽略空结果?
git branch --merged | grep -v '^* ' | xargs git branch -d
,它在输入为空时也会失败
ls
用于程序设计;参见mywiki.wooledge.org/ParsingLs