私は独自の小さなバックアップスクリプトを書こうとしました。スクリプトを実行すると問題が発生しますが、コマンドはrm
関係ありません。私はまだ出力を処理したいのですが(ジョブが失敗したかどうかによって異なるメッセージを表示します)、rm
現在は次のようになります。
ls -t | tail -n +$startnumber | xargs -d '\n' rm && echo "Removed old backup(s)." || echo "No more than $keepnumber files; nothing to do."
残念ながら、出力は次のようになります。
rm: missing operand
Try 'rm --help' for more information.
No more than 14 files; nothing to do.
最初の2行を削除して直接出力したいです。 「より明確な」メッセージ。私は試してみましたが、rm -f
これは常に(そして不正確に)成功した出力をトリガします。
ベストアンサー1
これらのrm
メッセージは標準エラー(stderr
)で送信されます。標準エラー出力(stderr
)を次にリダイレクトできます/dev/null
。
xargs -d '\n' rm 2>/dev/null
これにより、両方の行が端末に印刷されるのを防ぎ、カスタムメッセージのみが表示されます。