我需要在每个目录下创建多个目录,然后创建子目录。我能够编写用于创建目录的脚本,但是如何为子目录实现此目的。 文件夹结构:
-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中获取它。
答案 0 :(得分:2)
你可以这样做:
$ mkdir -p foo/{bar,baz}
$ find foo/
foo/
foo/bar
foo/baz
或者:
$ mkdir -p foo/bar foo/baz
$ find foo/
foo/
foo/bar
foo/baz
答案 1 :(得分:0)
Bash不太适合处理结构化数据。使用像Perl这样的不同工具通常会更好。以下代码假定您仅将目录缩进一个空格。这简化了计算。如果要从stdin传递目录,请将<DATA>
替换为<>
。
#! /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