Простые операции с файловой системой в Perl - PullRequest
0 голосов
/ 10 августа 2010

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

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

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

, но возникают проблемы с поиском эквивалента perl

1 Ответ

2 голосов
/ 10 августа 2010

Как насчет этого:

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, "всегда есть несколько способов сделать это".

...