这是一个工作正常的命令:
echo Blah: `stat -c %a .`
Run Code Online (Sandbox Code Playgroud)
是否可以对找到find -exec的每个文件执行相同的操作,而{}不是.?
Den*_*son 10
最好的方法是使用位置参数。并且$()是反引号的命令替换的首选,因为它更具可读性(不会与单引号混淆)并且可以轻松嵌套而无需进行大量转义。
find . -exec bash -c 'echo Blah: $(stat -c %a "$@")' _ {} \;
Run Code Online (Sandbox Code Playgroud)
下划线是 的占位符$0。
做什么的?
find ... -printf 'Blah: %m\n'
Run Code Online (Sandbox Code Playgroud)
或者bash -c如果你真的必须使用:
find . -exec bash -c 'echo Blah: `stat -c %a {}`' \;
Run Code Online (Sandbox Code Playgroud)