2010-08-10 62 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