Как я копирую символьные ссылки в Perl?

Вы можете использовать map и reduce следующим образом:

const item_array = [{"Email Address":"c","First Name":"a","Last Name":"b","Permission":"Training Administrator","Telephone":"d","User Group":"Company Administrator"},{"Email Address":"3","First Name":"1","Last Name":"2","Permission":"6","Telephone":"4","User Group":"5"}],
      item_order = ["First Name","Last Name","Email Address","Permission","Telephone","User Group"];

const ordered = item_array.map(item =>
    item_order.reduce((acc, key) => ( acc[key] = item[key], acc ), {})
);

console.log(ordered)

[ 118]

5
задан splintor 11 December 2018 в 09:06
поделиться

2 ответа

В Perl можно использовать readlink() функция для обнаружения места назначения символьной ссылки.

Можно также использовать lstat() функционируйте для чтения полномочий символьной ссылки (в противоположность stat() который считает детали файла, на который указывает символьная ссылка).

Установка Actually владение на новой символьной ссылке не может быть сделано без дополнительной справки как Perl, не выставляет lchown() системный вызов. Для этого можно использовать Perl Lchown модуль от CPAN.

Принятие достаточных полномочий (nb: код непроверенный)

 use Lchown;
 my $old_link = 'path to the symlink';
 my $new_link = 'path to the copy';

 my $dst = readlink($old_link);
 my @stat = lstat($old_link);

 symlink $dst, $new_link;
 lchown $stat[4], $stat[5], $new_link;  # set UID and GID from the lstat() results

Вы не должны волноваться о полномочиях на символьной ссылке - они всегда появляются как -rwxrwxrwx

8
ответ дан 13 December 2019 в 19:37
поделиться

Модуль File::Copy::Recursive заботится об этом. По умолчанию это скопирует символьные ссылки и попытается сохранить владение.

3
ответ дан 13 December 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: