我想创建一个新的目录,它的内容是软链接到现有目录的内容,并为这个新目录设置完全权限。perl中的简单文件系统操作
我懂得这是在bash:
mkdir -m a=rwx new_dir
cd new_dir
ln -s /path/to/old/dir/* .
,但有一些问题找到perl的等效
我想创建一个新的目录,它的内容是软链接到现有目录的内容,并为这个新目录设置完全权限。perl中的简单文件系统操作
我懂得这是在bash:
mkdir -m a=rwx new_dir
cd new_dir
ln -s /path/to/old/dir/* .
,但有一些问题找到perl的等效
怎么是这样的:
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,“总有不止一种方法可以做到”。
我对'我的$ oldname( path/to/old/dir/*>)'部件有问题。假设我的旧目录路径存储为常量OLD_DIR。我应该在“for”头文件中加入什么内容? – 2010-08-10 08:13:29
使用'File :: Next'解决(使用'descend_filter => sub {0}') – 2010-08-10 08:37:33
@David:我已经编辑了使用常量的答案OLD_DIR – 2010-08-10 09:14:35
你有没有试过[perldoc perlfunc](http://perldoc.perl.org/perlfunc.html)? – Ether 2010-08-10 15:04:45