有人可以解释一下 bash 末尾符号的内部工作原理:“_ {} \;”
Can someone explain the inner working of the symbols at the end of this bash: “_ {} \;”
我运行在shell下面命令批量转换.HEIC
个文件到.JPG
个文件,命令成功,但是有一部分我不知道没看懂:
find . -name '*.HEIC' -exec sh -c 'magick convert "${1%.HEIC}.JPG"' _ {} \;
显然 _ {}
将 find
结果赋值给 </code>,但是怎么做呢?我在 google 和这里都找不到解释,而且在 <code>man find
上也没有任何运气。答案很可能就在这里,但这些符号不太好搜索。
那么问题来了,_ {}
如何给
赋值呢?是否可以使用 find/ 或其他命令为其分配多个变量?
_ {}
如何将文件名分配给 </code> 涉及两件事。首先,<code>find
的 -exec
是如何工作的:它 运行 将以下参数(直到转义的 ;
)作为命令,但 {}
替换为它找到的文件的路径。因此,如果它找到 ./somefile.HEIC
,它将 运行 相当于命令:
sh -c 'magick convert "${1%.HEIC}.JPG"' _ ./somefile.HEIC
第二部分是sh
命令。 sh
可以做很多事情,但是如果给它一个 -c
选项,它会将紧随其后的参数 (magick convert "${1%.HEIC}.JPG"
) 作为要解析的命令字符串和 运行,有点像一个小的迷你脚本。之后的参数作为该迷你脚本的参数,以 [=22=]
开头。在这种情况下,这意味着它 运行 是 [=22=]
设置为 _
且 </code> 设置为“./somefile.HEIC” 的迷你脚本。如果提供更多参数,它们将是 <code>
、
等
我运行在shell下面命令批量转换.HEIC
个文件到.JPG
个文件,命令成功,但是有一部分我不知道没看懂:
find . -name '*.HEIC' -exec sh -c 'magick convert "${1%.HEIC}.JPG"' _ {} \;
显然 _ {}
将 find
结果赋值给 </code>,但是怎么做呢?我在 google 和这里都找不到解释,而且在 <code>man find
上也没有任何运气。答案很可能就在这里,但这些符号不太好搜索。
那么问题来了,_ {}
如何给赋值呢?是否可以使用 find/ 或其他命令为其分配多个变量?
_ {}
如何将文件名分配给 </code> 涉及两件事。首先,<code>find
的 -exec
是如何工作的:它 运行 将以下参数(直到转义的 ;
)作为命令,但 {}
替换为它找到的文件的路径。因此,如果它找到 ./somefile.HEIC
,它将 运行 相当于命令:
sh -c 'magick convert "${1%.HEIC}.JPG"' _ ./somefile.HEIC
第二部分是sh
命令。 sh
可以做很多事情,但是如果给它一个 -c
选项,它会将紧随其后的参数 (magick convert "${1%.HEIC}.JPG"
) 作为要解析的命令字符串和 运行,有点像一个小的迷你脚本。之后的参数作为该迷你脚本的参数,以 [=22=]
开头。在这种情况下,这意味着它 运行 是 [=22=]
设置为 _
且 </code> 设置为“./somefile.HEIC” 的迷你脚本。如果提供更多参数,它们将是 <code>
、 等