2010-08-10 36 views
0

我想创建一个新的目录,它的内容是软链接到现有目录的内容,并为这个新目录设置完全权限。perl中的简单文件系统操作

我懂得这是在bash:

mkdir -m a=rwx new_dir 
cd new_dir 
ln -s /path/to/old/dir/* . 

,但有一些问题找到perl的等效

+0

你有没有试过[perldoc perlfunc](http://perldoc.perl.org/perlfunc.html)? – Ether 2010-08-10 15:04:45

回答

2

怎么是这样的:

mkdir -m a=rwx new_dir  in perl: -> mkdir ('new_dir', 0777); 
cd new_dir     in perl: -> chdir ('new_dir'); 
ln -s /path/to/old/dir/* . in perl: -> 

    use constant OLD_DIR => '/path/to/old/dir'; 

    for my $oldname (glob(OLD_DIR . '/*')) { 
     my $newname = $oldname; 
     $newname =~ s/^.*\///s;  # Remove everything up to last "/" 
     symlink ($oldname, $newname); 
    } 

当然,与Perl,“总有不止一种方法可以做到”。

+0

我对'我的$ oldname()'部件有问题。假设我的旧目录路径存储为常量OLD_DIR。我应该在“for”头文件中加入什么内容? – 2010-08-10 08:13:29

+0

使用'File :: Next'解决(使用'descend_filter => sub {0}') – 2010-08-10 08:37:33

+0

@David:我已经编辑了使用常量的答案OLD_DIR – 2010-08-10 09:14:35