次のコマンドを検討してください。
ls /mydir/*.txt | xargs chown root
目的は、すべてのテキストファイルの所有者mydirをroot に変更することです
問題は、その中に.txtファイルがない場合、mydirxargsはパスが指定されていないというエラーを表示することです。これはエラーがスローされるため無害な例ですが、ここで使用する必要があるスクリプトのように、空白のパスが現在のディレクトリであると見なされる場合があります。そのため、そのコマンドを実行した/home/tom/場合、結果がなく、そのls /mydir/*.txt下のすべてのファイルの/home/tom/所有者がルートに変更されます。
それで、どうすればxargsに空の結果を無視させることができますか?
git branch --merged | grep -v '^* ' | xargs git branch -d、空の入力でも失敗します
lsプログラムで使用するためにからの出力をパイプしないでください。mywiki.wooledge.org/ParsingLsを