Hallo,
ich möchte eine Ablagestruktur mit einem Perlskript erzeugen das via CGI und sudo aufgerufen wird. Es soll ab einem Basisverzeichniss eine Unterstruktur erstellen. Gibt es etwas wie das Sticky-bit(?!) für das Skript, so dass alle erzeugten Verzeichnisse mit dieser Gruppe versehen werden? Ich kann es im Moment leider nicht ausprobieren da ich auf 'nem Windows entwickle.
Für Interessierte, das Skript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl -w
use strict;
my $folder = shift @ARGV;
exit unless ($folder);
my $base_dir = 'C:\\testdir\\';
my @dirs = qw ( schrift.A_B_F_P pl.G_R_V daten.T_S_X cad.Z );
&two_level($folder) if ($folder =~ m/^\w{2}-\d{4}$/);
&three_level($folder) if ($folder =~ m/^\w{2}-\d{4}-\w$/);
print "Sorry Freunde, so geht es nicht!\n";
exit;
sub two_level {
my $folder = shift @_;
chdir $base_dir or die "$!\n";
die "Verzeichniss existiert bereits!\n" if (-e $folder);
mkdir $folder,0755 or die "$!\n";
chdir $folder or die "$!\n";
&structure();
exit;
}
sub three_level {
my $folder = shift @_;
chdir $base_dir or die "$!\n";
$folder =~ m/^(\w{2}-\d{4})-(\w)$/;
my ($lv1, $lv2) = ($1, $2);
die "Verzeichnisse existieren bereits!\n" if (-e "$lv1\\$lv2");
mkdir $lv1,0755 or die "$!\n" unless (-e $lv1);
chdir $lv1 or die "$!\n";
mkdir $lv2,0755 or die "$!\n";
chdir $lv2 or die "$!\n";
&structure();
exit;
}
sub structure {
for (@dirs) { mkdir $_,0775 or die "$!\n"; }
}
Gruss,
Ronnie