我想通过找到一些目录
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
尚未找到要替换的路径名。\{\}
谢谢。
答案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 {} \;