「find -exec」の「\{\}」でコマンド拡張を使用するには? [コピー]

「find -exec」の「\{\}」でコマンド拡張を使用するには? [コピー]

私はどのディレクトリを探したいのですが。

find /path/to/a/dir -type d  -links 2 

次に、見つかった各パス名ごとにfind変数に保存されているとしますpathname

stow -d "$(dirname "$pathname")" -t /home/t/bin "$(basename "$pathname")" 

上記を次のように組み合わせるにはどうすればよいですかfind -exec

find /path/to/a/dir -type d  -links 2 -exec stow -d "$(dirname \{\})" -t /home/t/bin "$(basename \{\})" \;

findシェルが実行される前にコマンド置換を実行しますが、置き換えるパス名がまだコマンド置換で見つからなかったため、機能しないようです。\{\}

ありがとうございます。

ベストアンサー1

sh -cコマンドで梱包します。

find /path/to/dir -type d -links 2 -exec sh -c 'stow -d "$(dirname "$1")" -t /home/t/bin "$(basename "$1")"' sh {} \;

おすすめ記事