我需要在
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 执行此操作的正确方法是什么吗?另外,为什么第二个命令不正确?
问题是 -n1 和 -I 不能在 xargs 中一起使用。在 select_images 中创建与 download_resave/ 结构相同的子文件夹的正确命令是:
ls download_resave/ | xargs -I {} mkdir -p select_images/{}
为什么第二个命令不起作用是因为 $0 引用脚本名称,而不是传递给 xargs 的参数。您需要使用 {} 作为参数的占位符,而不是 $0。