Написал вчера за 5 минут вот такой скрипт:
#!/usr/bin/perl
die "Не указаны разрешения" if ( ! ($permissions = @ARGV[0]) );
while ( $line = <STDIN> ) {
printf('Установка разрешений %s файлу: %s', $permissions, $line);
chmod($permissions, "$line") or die "Не могу установить разрешения";
};
exit 0;
[nexfwall@LenovoS10-20027 ~]$ find . -type f | ./chmod-stdin.pl 0664
Установка разрешений 0664 файлу: ./evil-agent-smith1.jpg
Не могу установить разрешения at ./chmod-stdin.pl line 6, <STDIN> line 1.
В перлдоке, не нашел объяснений, по каким причинам функция может выходить с ошибкой, и как
Объясните мне, что я делаю не так?
----------------------------------------------------------
Решено. Окончательный вариант:
#!/usr/bin/perl
die "Не указаны разрешения" if ( ! ($permissions = @ARGV[0]) );
while ( <STDIN> ) {
chomp;
printf("Установка разрешений %s файлу: %s\n", $permissions, "$_");
chmod(oct($permissions), "$_") or die "Не могу установить разрешения: $_ $!";
};
exit 0;