创建多个目录

创建多个目录

我正在努力寻找创建一系列目录的正确语法。假设有 50 个。这些目录中都会有一个索引文件。我有这个 Bash 代码,但似乎无法弄清楚代码语法以使其工作。有人可以告诉我吗?谢谢

for f in foo/bar{00..50}; do 
   mkdir -p $f && printf "text\n goes\n here" > $f/index

答案1

更简单的方法:

mkdir -p foo/bar{00..50}
$ ls foo/
bar00  bar02  bar04  bar06  bar08  bar10  bar12  bar14  bar16  bar18  bar20  bar22  bar24  bar26  bar28  bar30  bar32  bar34  bar36  bar38  bar40  bar42  bar44  bar46  bar48  bar50
bar01  bar03  bar05  bar07  bar09  bar11  bar13  bar15  bar17  bar19  bar21  bar23  bar25  bar27  bar29  bar31  bar33  bar35  bar37  bar39  bar41  bar43  bar45  bar47  bar49

因此第一部分可以是:

 mkdir -p foo/bar{00..50}

然后您需要创建的只是包含文本的“索引”文件。


关于第二部分,我将使用参考文件

touch file2
vi file2 (and add content)
shop -s globstar && for f in **/*(/); do cp -p file2 "$f/index"; done

答案2

bash for 循环语法是

for ...; do ...; done

所以

for f in foo/bar{00..10}; do 
  mkdir -p $f && printf "text\n goes\n here\n" > $f/index
done

给出:

$ tree foo
foo
├── bar00
│   └── index
├── bar01
│   └── index
├── bar02
│   └── index
├── bar03
│   └── index
├── bar04
│   └── index
├── bar05
│   └── index
├── bar06
│   └── index
├── bar07
│   └── index
├── bar08
│   └── index
├── bar09
│   └── index
└── bar10
    └── index

11 directories, 11 files

答案3

这就是我所做的

创建子目录

mkdir -p ./blabla{1..10}

将所需文件(在本例中名为 indexmultitest.html)复制到父目录 cp /home/antony/Downloads/Indextests/indexmultitest.html /home/antony/Downloads/blabla/

进入父目录 cd /home/antony/Downloads/blabla/

将所需文件复制到 d 目录中 */; do cp indexmultitest.html "$d"; done

这将为您提供多个目录,每个目录下都有指定的文件。

现在的问题是,如果我想创建一系列没有可预测名称的目录,例如 blabla01、blabla02、blabla03 等,以便有人能猜出我服务器上目录的名称???

相关内容