mount |awk '{print $3}'
-->マウントポイントリスト
find "list of mount points" -name "aaa" -print
前の行の結果を検索ディレクトリfindコマンドにどのようにリダイレクトできますか?
一行にしたいです。
mount |awk '{print $3}' | find "converting pipe result to a variable as directory" -name "aaa" -print
このように動作させることは可能ですか?
答え1
このように動作させることは可能ですか?
はい、次のようになりますxargs
。
mount |awk '{print $3}' | xargs -I {} find {} -name "aaa" -print
-P n
xargs
最大同時プロセスのために追加すると、n
ハードドライブを並列に検索することもできます(GNU拡張です)。
答え2
あなたが探しているコマンドの置き換え:コマンドの出力をコマンドラインに置き換えます。
find $(mount |awk '{print $3}') -name "aaa" -print
これらの制限のため、マウントポイントにスペースや*?\[
。awk
find
マウントポイントを巡回しないように指示する必要があります。それ以外の場合は、find /
システム全体を巡回します。パス-xdev
オプション。
find $(mount |awk '{print $3}') -xdev -name "aaa" -print
find
内部システムで使用されるファイルシステムは非常に大きく、読み取り権限のない多くのファイルを含む可能性があるため(偽のエラーメッセージが表示される)、マウントされたすべてのファイルシステムで実行しないでください。からファイルシステムのリストをインポートする代わりにmount
からインポートすると、df
一部が省略されます。
find $(df -P |awk 'NR != 1 {print $6}') -xdev -name "aaa" -print