-----邮件原件----- 发件人: Chris Charley [mailto:char...@pulsenet.com] 发送时间: 2009年11月19日 5:21 收件人: beginners@perl.org 主题: Re: mkdir in the mounted partition,please help me,thanks
----- Original Message ----- From: ""Chris Charley"" <char...@pulsenet.com> Newsgroups: perl.beginners To: <beginners@perl.org> Sent: Wednesday, November 18, 2009 12:39 PM Subject: Re: mkdir in the mounted partition,please help me,thanks > > ----- Original Message ----- > From: ""gaochong"" <zjgaoch...@gmail.com> > Newsgroups: perl.beginners > To: <beginners@perl.org> > Sent: Tuesday, November 17, 2009 6:41 AM > Subject: mkdir in the mounted partition,please help me,thanks [snip some content] > > As to a better way, here is another way (without reconstructing the @list > array). > > #!/usr/bin/perl > use strict; > use warnings; > use File::Path; # uses 'mkpath' to make new included dirs in a path > > my ($i, @p) = (-1, 3 .. 9); > > foreach my $f ("FA00000001".."FA00002000") { > my $p = $p[++$i % @p]; There is really no need for the @p array. You could calculate $p like: my $p = ++$i % 7 + 3; In this example this can do ,but I have the following partitions and will not finish .so have to using @list and reconstruct it ,and you ? 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda1 29G 4.6G 23G 17% / /dev/sda3 235G 3.7G 219G 2% /data tmpfs 2.0G 0 2.0G 0% /dev/shm /dev/sdb1 1.8T 933G 749G 56% /savedata/data01 /dev/sdc1 1.8T 1.2T 456G 73% /savedata/data02 /dev/sdd1 1.8T 1.1T 576G 66% /savedata/data03 /dev/sde1 1.8T 1.1T 647G 62% /savedata/data04 /dev/sdf1 1.8T 1.2T 551G 68% /savedata/data05 /dev/sdg1 1.2T 442G 707G 39% /savedata/data06 /dev/sdh1 1.8T 699G 984G 42% /savedata/data11 /dev/sdi1 1.8T 940G 743G 56% /savedata/data12 /dev/sdj1 1.8T 962G 720G 58% /savedata/data13 /dev/sdk1 1.8T 937G 746G 56% /savedata/data14 /dev/sdl1 1.8T 1.3T 445G 74% /savedata/data15 /dev/sdm1 1.2T 612G 537G 54% /savedata/data16 /dev/sdn1 1.8T 1.2T 465G 73% /savedata/data21 /dev/sdo1 1.8T 1.2T 458G 73% /savedata/data22 /dev/sdp1 1.8T 874G 808G 52% /savedata/data23 /dev/sdq1 1.8T 1007G 675G 60% /savedata/data24 /dev/sdr1 1.8T 1.4T 320G 81% /savedata/data25 /dev/sds1 1.2T 609G 541G 53% /savedata/data26 /dev/sdt1 1.7T 1.1T 523G 68% /savedata/data31 > #mkpath(["/data$p/NRU/$f"], 0, 0755) unless -e "/data$p/NRU/$f"; > #symlink "/data$p/NRU/$f","/usr/local/Titan/NRU/$f" > # or warn"symlink /data$p/NRU/$f err:$!"; > print "/data$p/NRU/$f\n"; > } > > This example uses the 'mkpath()' function which *will* construct the > entire path (unlike the mkdir() function). mkpath() is included in the > base perl 5.8 distribution, so it may be available to you. YES,mkpath() function of File::Path is a good idea and I will try it . > > Chris -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/ -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/