xargs 中的 -I 参数有什么作用?

xargs 中的 -I 参数有什么作用?

我正在编写一个 bash 脚本并-I在答案中遇到了这个论点这里这里但我不明白它的作用。这手动的我也不清楚。

第二个答案还指出了我也不明白的以下文字:

find /thisdir -type f -name "*.ogg" -print0 | xargs -0 -Imysongs mv -i mysongs /somedir 

-I上面命令中的 告诉您xargs要使用什么替换字符串(否则它将参数添加到命令末尾)。

答案1

是的,这是一种迂回的描述,但最终它非常简单: -I定义一个模式。该模式将在命令行的其余部分中搜索,并替换为来自标准输入的输入。

在您显示的示例中:

xargs -0 -Imysongs mv -i mysongs /somedir 

定义-I了一个模式“mysongs”,该模式在命令行的其余部分中搜索。

在您的示例中,find生成 .ogg 文件列表。这些文件即将到达xarg.因此,对于 找到的每个文件名findxarg将创建并执行命令

mv -i <filename> /somedir

相关内容