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