Команда readlink -e
не является переносимой, поэтому на нее нельзя полагаться.
$ cat input
Like quills upon the fretful porpentine.
$ ln -s input alink
$ readlink -e alink
readlink: illegal option -- e
usage: readlink [-n] [file...]
Вместо этого в коде Perl замените ссылки именем файла, на который они указывают, используя Perl-функцию readlink
, а затем выполните цикл по вводу, как обычно.
$ perl -i -ple 'BEGIN{for(@ARGV){ $_=readlink if -l }} tr/A-Z/a-z/' alink
alink
по-прежнему является символической ссылкой, а содержимое input
было изменено:
$ perl -E 'say readlink "alink"'
input
$ cat input
LIKE QUILLS UPON THE FRETFUL PORPENTINE.
В Perl-скрипте это может выглядеть примерно так
#!/usr/bin/env perl
use strict;
use warnings;
for my $arg (@ARGV) {
$arg = readlink $arg if -l $arg;
}
# in-place edit with backup filename, perldoc -v '$^I'
$^I = ".whoops";
while (readline) {
s/#5c616c/#8bbac9/g;
print;
}
хотя может потребоваться List::Util::uniq
или подобное, чтобы избежать изменения одного и того же имени файла два или более раз, если входные данные содержат повторяющиеся имена файлов.
~$ modprobe wireguard
bash: modprobe : commande introuvable
Эту команду следует запускать от имени пользователя root:
sudo apt install -t buster-backports linux-image-amd64
sudo reboot
Отключите безопасную загрузку, как указано @A.B , затем запустите:
Разгрузить мосуле:
sudo modprobe -rv wireguard
Для загрузки модуля:
sudo modprobe -v wireguard
ТАКЖЕ вам необходимо создать файл /etc/wireguard/wg0.conf
.