1

我想使用 shell 在 Linux 中创建一些文件夹。

文件夹名称应如下所示:

1-10000
10001-20000
20001-30000
30001-40000 

等等。

为此我应该使用哪些命令?

4

6 回答 6

3

简单的 bash 脚本

#!/bin/bash

mkdir 1-10000
for i in {1..5}
do
   mkdir ${i}001-$(($i+1))000
done
于 2012-08-02T12:30:07.020 回答
1

在 bash 中对此进行了测试:

#!/bin/bash

n=1 # Your starting number
mx=40000 # Your max number
inc=10000 # The number of entries you want in each group

while [ $n -lt $mx ]; do
  mkdir ${n}'-'$[$n+$inc-1]
  n=$[$n+$inc]
done
于 2012-08-02T12:51:08.627 回答
1

在 zsh 中工作,也应该在 bash 中工作:

min=1; max=0; while ((max<40000)); do
  max=$((min-1+10000));
  mkdir $min-$max;
  min=$((max+1))
done
于 2012-08-02T12:35:37.687 回答
1

这应该可以解决您的问题

for i in $(seq 0 10000 100000)
do
    mkdir $(expr $i + 1)-$(expr $i + 10000) 
done

以下是匿名用户提出的改进建议。我已将其添加为单独的段落(未经验证),以便将两个版本都存档。

for i in $(seq 0 10000 100000)
do 
     mkdir $((i + 1))-$((i + 10000))
done
于 2012-08-02T12:32:52.213 回答
0

这是zsh使用新{start..end..step}序列生成器的替代方法:

start=1
end=40000
step=10000
paste <(print -l {$start..$end..$step})                 \
      <(print -l {$((start + $step - 1))..$end..$step}) \
| while read n1 n2; do 
    mkdir $n1-$n2
  done
于 2012-08-02T14:29:01.177 回答
0

man mkdir

它应该用于在 unix 中创建目录。我相信这是家庭作业,而且到目前为止你还没有发布任何你尝试过的东西。

如果您正在寻找 shell 脚本,请尝试将您提到的行作为输入并围绕逗号分隔的值循环,然后将值拆分到另一个循环中,然后与拆分后的最大值进行比较,然后使用 mkdir 创建目录.algorithm 是这样的:

for each 1-10000,10001-20000,20001-30000,30001-40000 
split value1-value2 into value1 and value2
for i=value1 and i <=value2
mkdir $i
于 2012-08-02T12:24:33.327 回答