調べました map cp
が、quietオプションが見つからないため、cp
は「No such file or directory」を報告しません。
cp
がファイルのコピーを試みたが失敗した場合、このエラーを出力しないようにするにはどうすればよいですか?
さて、誰もが/dev/null
はエラーの表示を防ぎますが、別の方法があります。ファイルが存在するかどうかをテストし、存在する場合は、cp
コマンドを実行します。
[[ -e f.txt ]] && cp f.txt ff.txt
この場合、最初のテストが失敗すると、cp
は実行されず、エラーも発生しません。
エラーメッセージのみを抑制したい場合:
cp original.txt copy.txt 2>/dev/null
ボットを抑制したい場合は、エラーメッセージと終了コードで次を使用します。
cp original.txt copy.txt 2>/dev/null || :
一般的な解決策は、stderrをbitbucketにリダイレクトすることです。
cp old_file new_file 2>>/dev/null
そうすると、スクリプト内のバグが隠されます。つまり、さまざまな状況で静かに失敗します。私が使う >>
のではなく >
代わりにログファイルを使用する必要がある場合のリダイレクト。
[〜#〜] stderr [〜#〜] に出力されるエラーと同様に、/dev/null
にリダイレクトします。
cp a b 2> /dev/null
リダイレクト:
cp ... 2>/dev/null
rsync -avzh --ignore-missing-args /path/to/source /path/to/destination
ignore-missing-args
:無視されるエラーは、存在しないソースファイルに関連するエラーです。