我想用一个脚本在一个目录中创建一个多目录

时间:2014-09-15 18:30:04

标签: bash shell

我想在linux中创建多个目录。

我的位置是/ myhome / docs /

在此我想制作46个文件夹,标签为sample1,sample2,sample3 ... sample46

我该怎么做?

任何人都可以帮我一个简单的脚本吗?

5 个答案:

答案 0 :(得分:3)

您可以使用:

mkdir sample{1..46}

使用for循环进行更多控制:

for ((i=1; i<=46; i++)); do mkdir "sample$i"; done

答案 1 :(得分:2)

有点晚 - 但为了好玩,一个集合:

1。)直接方法,正如其他人所说:

mkdir sample{1..46}

它只调用mkdir的一倍,因为参数扩展发生在执行mkdir之前。这似乎是一个好主意,但失败了

mkdir sample{1..100000}

错误如:

-bash: /bin/mkdir: Argument list too long

此外,在脚本中使用非常困难,因为您无法执行下一步:

count=46
mkdir {1..$count}

2。)使用for-loop

for((i=1;i<=46;i++))
do
    mkdir "sample$i"
done

将适用于任意数量的目录,但效率不高 - 将为每个目录调用mkdir(fork / exec)。

3。)使用seq

for i in $(seq 46)
do
    mkdir "sample$i"
done

也可以,但每次都会调用mkdir,而大数字必须为for循环分配长参数列表。

4。)seq

的变体
seq -f "sample%g" 1000000 | xargs mkdir

只会在最短的时间内调用mkdir,并且不会在任何目录数上失败。

答案 2 :(得分:1)

试试这个:

mkdir sample{1..46}

就是这样。

答案 3 :(得分:1)

这一定是有用的:

mkdir sample{1..46}

答案 4 :(得分:1)

您也可以尝试以下代码,

for i in $(seq 46); do mkdir "sample$i"; done