Bashスクリプトの実行中にエラーメッセージを防ぐ方法は?

Bashスクリプトの実行中にエラーメッセージを防ぐ方法は?

string.h私のコンピュータで同じ名前のすべてのファイルを見つけて特定のフォルダにコピーするbashスクリプトを作成する必要があります。私のコードは次のとおりです。

#!/bin/bash
sudo find / -type f -name "string.h" -exec cp {} $HOME/MyDocuments

ただし、スクリプトの実行中にコンソール端末に「Permission Denied」エラーメッセージが表示されます。このメッセージを受信したくない場合はどうすればよいですか?コンソール端末は清潔でなければなりません。

ベストアンサー1

ユーザーが読み取り権限のないディレクトリに移動しようとした場合、またはアクセス権限のないディレクトリに書き込みを試みると、「権限の拒否cp」エラーは「正常」です。 stderrをリダイレクトすることでこれを抑制できます。

#!/bin/bash
sudo find / -type f -name "string.h" -exec cp {} $HOME/MyDocuments \; 2>/dev/null

このモードは、2>/dev/null標準エラーではなくすべてのエラーを「どこにでも」送信することを意味します。

ただし、エラーメッセージを送信しても/dev/nullコマンドに読み取りまたは書き込み権限がないというエラーは解決されません。

おすすめ記事