複数の-execオプションを使用してリダイレクト&> / dev / nullを見つけます。 exec コマンドはプロセスをバックグラウンドで送信します。

複数の-execオプションを使用してリダイレクト&> / dev / nullを見つけます。 exec コマンドはプロセスをバックグラウンドで送信します。

複数の-execパラメータを持つfindコマンドがあり、いずれかのコマンドの出力(stdoutとstderr)を抑制しようとしています。私が使うとき&>/パス/ターゲット/ファイル、これは出力をリダイレクトするのではなく、プロセスをバックグラウンドに送信します。

find /some/path -type f -exec sh -c 'scriptA.sh "$1"' _ "{}" \; -exec sh -c 'scriptB.sh "$1" &>/dev/null' _ "{}" \;

以下のコマンド(「&」文字も使用)を使用して問題の解決策を見つけましたが、通常どおり出力をリダイレクトするのではなく、プロセスをバックグラウンドで送信する理由を知りたいです。それでは、下のコマンドは機能しますが、上記のコマンドが機能しないのはなぜですか?

find /some/path -type f -exec sh -c 'scriptA.sh "$1"' _ "{}" \; -exec sh -c 'scriptB.sh "$1" >/dev/null 2>&1' _ "{}" \;

ありがとうございます!

答え1

リダイレクトの正しい構文はです2>&1bash拡張構文は許可されますが、&>呼び出すBourneシェルまたはashバリアントはfind -exec許可されません。

関連情報