Bash如何在
如何在 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 \{\})" \;
我認為它不起作用,因為 shell 在執行之前執行了命令替換
find
,並且在命令替換中還沒有找到要替換的路徑名\{\}
。謝謝。
你把它包裝在一個
sh -c
命令中find /path/to/dir -type d -links 2 -exec sh -c 'stow -d "$(dirname "$1")" -t /home/t/bin "$(basename "$1")"' sh {} \;