2010-08-10 4 views
0

Я хотел бы создать новый каталог, в котором его содержимое будет содержать ссылки на содержимое существующего каталога, и установить полные разрешения для этого нового каталога.Простые операции с файловой системой в perl

Я знаю, как это в Баш:

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

ответ

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 () 'part. предположим, что мой старый путь dir хранится как постоянный OLD_DIR. Что я должен добавить в заголовок 'for'? –

+0

Решено использовать 'File :: Next' (с' descend_filter => sub {0} ') –

+0

@David: я отредактировал ответ, чтобы использовать константу для OLD_DIR –

Смежные вопросы