xargs 无法与 -n1 和 -I 一起运行?

问题描述 投票:0回答:1

我需要在

selected_images
下创建与
download_async/
结构相同的子文件夹。我使用了这个命令:

ls download_resave/ | xargs  -n1 -t -I{} mkdir -p select_images/{}

但我知道这个命令并不准确,因为我看到了警告:

xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value

我尝试过这个:

ls download_resave/ | xargs  -n1 -t mkdir -p select_images/$0

这不会输出警告,但它将在当前文件夹而不是目标文件夹中创建。

您能告诉我使用 xargs 执行此操作的正确方法是什么吗?另外,为什么第二个命令不正确?

linux shell xargs
1个回答
0
投票

问题是 -n1 和 -I 不能在 xargs 中一起使用。在 select_images 中创建与 download_resave/ 结构相同的子文件夹的正确命令是:

ls download_resave/ | xargs -I {} mkdir -p select_images/{}

为什么第二个命令不起作用是因为 $0 引用脚本名称,而不是传递给 xargs 的参数。您需要使用 {} 作为参数的占位符,而不是 $0。

© www.soinside.com 2019 - 2024. All rights reserved.