1#!/usr/local/bin/perl 2 3# mkdir-p.pl 4 5# On some systems, the -p option to mkdir (= also create any missing parent 6# directories) is not available. 7 8my $arg; 9 10foreach $arg (@ARGV) { 11 &do_mkdir_p($arg); 12} 13 14 15sub do_mkdir_p { 16 local($dir) = @_; 17 18 $dir =~ s|/*\Z(?!\n)||s; 19 20 if (-d $dir) { 21 return; 22 } 23 24 if ($dir =~ m|[^/]/|s) { 25 local($parent) = $dir; 26 $parent =~ s|[^/]*\Z(?!\n)||s; 27 28 do_mkdir_p($parent); 29 } 30 31 mkdir($dir, 0777) || die "Cannot create directory $dir: $!\n"; 32 print "created directory `$dir'\n"; 33} 34