Как использовать ISTAT на AIX AIX ALECT STAT ON Linux Dismerseations

вы можете попробовать этот проект android-notifier

2
24.10.2018, 19:52
1 ответ

Используйте find, но передайте имена файлов непосредственно Perl-скрипту, который выводит нужные команды:

find /backup/"$INSTANCE"/tsm/* -exec /path/to/perl-script.pl {} +

Остерегайтесь имен файлов, содержащих одинарные -кавычки! Я изменил печатное имя файла, чтобы оно заключало в кавычки одинарные -.

perl -script.pl

#!/usr/bin/env perl -w
use strict;

for (@ARGV) {
  my @s = stat;
  next unless @s; # silently fail on to the next file
  my $filename = $_;
  $filename =~ s/'/'\\''/g;
  printf "chown %s:%s '%s'\nchmod %04o '%s'\n", $s[4], $s[5], $filename, ($s[2] & 07777), $filename;
}

Если вы предпочитаете текстовые имена пользователей и групп вместо uid и gid, используйте функции поиска get *:

...
  printf "chown %s:%s '%s'\nchmod %04o '%s'\n", (getpwuid($s[4]))[0], (getgrgid($s[5]))[0], $filename, ($s[2] & 07777), $filename;
...

Пример вывода:

chown 1000:1001 '/backup/myinstance/tsm/everyone-file'
chmod 0666 '/backup/myinstance/tsm/everyone-file'
chown 1000:1001 '/backup/myinstance/tsm/file'\''withquote'
chmod 0644 '/backup/myinstance/tsm/file'\''withquote'
chown 1000:1001 '/backup/myinstance/tsm/perl-script.pl'
chmod 0755 '/backup/myinstance/tsm/perl-script.pl'
chown 1000:1001 '/backup/myinstance/tsm/secure-file'
chmod 0600 '/backup/myinstance/tsm/secure-file'
chown 1000:1001 '/backup/myinstance/tsm/setuid-file'
chmod 4755 '/backup/myinstance/tsm/setuid-file'
chown 1000:1001 '/backup/myinstance/tsm/some-dir'
chmod 0755 '/backup/myinstance/tsm/some-dir'
4
27.01.2020, 21:58

Теги

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