Linux 创建多个文件夹和子文件夹

Linux 创建多个文件夹和子文件夹,linux,shell,Linux,Shell,我需要创建多个目录,然后在每个目录下创建子目录。我能够编写创建目录的脚本,但是如何为子目录实现这一点呢。 文件夹结构: -User1 -FolderA -FolderA1 -FolderB -FolderC -FolderC1 -FolderC2 -FolderD -User2 -FolderA -FolderA1 -FolderB -FolderC -FolderC1

我需要创建多个目录,然后在每个目录下创建子目录。我能够编写创建目录的脚本,但是如何为子目录实现这一点呢。 文件夹结构:

-User1
   -FolderA
       -FolderA1
   -FolderB
   -FolderC
       -FolderC1
       -FolderC2
    -FolderD
-User2
   -FolderA
       -FolderA1
   -FolderB
   -FolderC
       -FolderC1
       -FolderC2
    -FolderD
-User3
   -FolderA
       -FolderA1
   -FolderB
   -FolderC
       -FolderC1
       -FolderC2
    -FolderD

我能够通过使用powershell的CSV文件在windows中实现这一点。不知道如何在linux中获得它。

您可以这样做:

$ mkdir -p foo/{bar,baz}
$ find foo/
foo/
foo/bar
foo/baz
或:


Bash不太适合处理结构化数据。通常最好使用不同的工具,如Perl。下面的代码假定目录只缩进一个空格。这简化了计算。如果要从stdin传递目录,请将
替换为

#/usr/bin/perl
严格使用;
使用警告;
我的@p=();
而(){
s/\n\r?/;
如果(/^(\s*)(.+)$/){
my$l=长度$1;
@p=(@p)[0..$l];
$p[$l]=2美元;
我的$d=(加入“/”,@p);
`mkdir$d`;
}
}
__资料__
用户1
福尔德拉
折页1
FolderB
FolderC
折页1
折页2
折叠
用户2
福尔德拉
折页1
FolderB
FolderC
折页1
折页2
折叠
用户3
福尔德拉
折页1
FolderB
FolderC
折页1
折页2
折叠
$ mkdir -p foo/bar foo/baz
$ find foo/
foo/
foo/bar
foo/baz
#! /usr/bin/perl
use strict;
use warnings;

my @p = ();
while (<DATA>) {
  s/\n\r?//;
  if (/^(\s*)(.+)$/) {
    my $l = length $1;
    @p = (@p)[0 .. $l];
    $p[$l] = $2;
    my $d = (join '/', @p);
    `mkdir $d`;
  }
}

__DATA__
User1
 FolderA
  FolderA1
 FolderB
 FolderC
  FolderC1
  FolderC2
 FolderD
User2
 FolderA
  FolderA1
 FolderB
 FolderC
  FolderC1
  FolderC2
 FolderD
User3
 FolderA
  FolderA1
 FolderB
 FolderC
  FolderC1
  FolderC2
 FolderD