如何将mkdir与xargs一起使用

时间:2016-03-18 11:57:50

标签: bash mkdir xargs

我是xargs的新手..

我想使用mkdir和xargs创建一些类似于:

的文件夹
for i in {1..11};do mkdir mm$i;done

将创建文件夹mm1,mm2,mm2 ... mm11

我试过了:

echo {1..11}|xargs -p -n1 -I {} mkdir -p "mm{}"

然而它提示:

mkdir -p mm1 2 3 4 5 6 7 8 9 10 11 ?...

我也试过了:

echo {1..11}|xargs -p -n1 mkdir -p mm
提示:

mkdir -p mm 1 ?...n
mkdir -p mm 2 ?...n
mkdir -p mm 3 ?...n
mkdir -p mm 4 ?...n
mkdir -p mm 5 ?...n
mkdir -p mm 6 ?...n
mkdir -p mm 7 ?...n
mkdir -p mm 8 ?...n
mkdir -p mm 9 ?...n
mkdir -p mm 10 ?...n
mkdir -p mm 11 ?...n
mkdir -p mm ?...n

帮助.. TKS

1 个答案:

答案 0 :(得分:1)

您的问题是您正在使用-I标志,这需要这样做 参数由空行而不是空格分隔:

-I replace-str
       Replace occurrences of replace-str in the initial-arguments with
       names  read  from  standard input.  Also, unquoted blanks do not
       terminate input items; instead  the  separator  is  the  newline
       character.  Implies -x and -L 1.

一种解决方案是生成适当的输入:

echo {1..11} | tr ' ' '\n' | xargs ...

或者:

seq 11 | xargs ...

或者,正如@gniourf_gniourf在评论中建议的那样,只需使用shell 直接针对这种特殊情况进行扩展。