Macos “{}在”中是什么意思;xargs-I{}unrar x{}";?

Macos “{}在”中是什么意思;xargs-I{}unrar x{}";?,macos,shell,Macos,Shell,我是壳牌公司的新员工,我想学习,但是,这似乎有点太复杂,难以理解: find\(-name*.rar\)| xargs-I{}unrar x{} 你能一步一步地解释一下is是做什么的吗。我知道它进入文件夹并找到它找到的所有.rar文件,然后使用|符号将它找到的文件链接到命令的第二部分。 但是,我不理解xargs-I{}unrar x{}部分,尤其是{}命令。我知道unrar提取存档。在生成的命令中,{}是一个占位符,替换为文件名 但是,不要使用此代码;如果rar存档文件的名称不正常,或者当前目录

我是壳牌公司的新员工,我想学习,但是,这似乎有点太复杂,难以理解:

find\(-name*.rar\)| xargs-I{}unrar x{}

你能一步一步地解释一下is是做什么的吗。我知道它进入文件夹并找到它找到的所有
.rar
文件,然后使用
|
符号将它找到的文件链接到命令的第二部分。
但是,我不理解
xargs-I{}unrar x{}
部分,尤其是
{}
命令。我知道
unrar
提取存档。

在生成的命令中,
{}
是一个占位符,替换为文件名

但是,不要使用此代码;如果
rar
存档文件的名称不正常,或者当前目录(与子目录相反)中存在任何与
*.rar
匹配的文件,则该文件将表现不好。考虑一下:

find . -name '*.rar' -exec unrar x '{}' ';'
…或者,如果您确实想使用
xargs

find . -name '*.rar' -print0 | xargs -n 1 -0 unrar x

{}
是占位符,在生成的命令中替换为文件名

但是,不要使用此代码;如果
rar
存档文件的名称不正常,或者当前目录(与子目录相反)中存在任何与
*.rar
匹配的文件,则该文件将表现不好。考虑一下:

find . -name '*.rar' -exec unrar x '{}' ';'
…或者,如果您确实想使用
xargs

find . -name '*.rar' -print0 | xargs -n 1 -0 unrar x

我认为
manxargs
可能会对您有所帮助。请参阅网站上的逐步解释,这也非常糟糕。考虑到
find-exec
,没有理由写这篇文章来使用
xargs
,而且xargs的使用会引入bug(看看如果你有一个名称中有空格的rar文件会发生什么。另外,如果当前目录中有任何
*.rar
文件,这将不起作用,因为
*.rar
将在shell开始
查找
之前被shell替换为一个文件名列表。我认为
man xargs
可能会帮助你。请参阅step by step在这里的解释也非常不必要的糟糕。考虑到
find-exec
,使用xargs引入了bug,根本没有理由写这个来使用
xargs
(看看如果您有一个名称中带有空格的rar文件会发生什么情况。另外,如果当前目录中有任何
*.rar
文件,这将不起作用,因为
*.rar
将由shell在启动
查找
之前替换为文件名列表。)。