ls 출력을 삭제하지 않고 AIX에서 파일 소유자를 얻는 방법은 무엇입니까?

ls 출력을 삭제하지 않고 AIX에서 파일 소유자를 얻는 방법은 무엇입니까?

내가 어떻게 할 수 있을까?확실하게AIX에서 파일의 소유자를 얻으시겠습니까? 신뢰성으로 인해 ls. Linux에서는 그냥 하겠지만 stat --printf=%U fooAIX 6.1과 7.1에서 작업하고 있습니다. 할 수 있다는 것을 알고 있지만 AIX에는 옵션이 istat없기 때문에 출력을 and 로 처리해야 하므로 바람직하지 않습니다. 즉, AIX의 핵심 유틸리티만 사용하여 Linux를 어떻게 에뮬레이트할 수 있습니까?--printfistatgrepawkstat --printf=%U foo

답변1

이것은 AIX에서 stat(1)과 유사한 유틸리티를 얻기 위해 제가 얼마 전에 작성한 스크립트입니다. 방금 %U을(를) 추가했습니다! --printf와 약간 다르게 동작하는 -c 옵션을 사용하는 것이 더 유용하다는 것을 알았습니다. Perl의 통계 배열의 편리한 로컬 복사본을 주석 블록으로 포함합니다.

#!/usr/bin/env perl -w
# emulate GNU coreutils stat command in a limited way
# -- only implemented a subset of the stat() options

use strict;
use Getopt::Std;
our $opt_c;

getopts('c:') or die "Usage: $0 [ -c (%n %i %u %g %s %U %X %Y %Z) ] file ...";
# default format is empty (not useful, but avoids 'undef' errors later)
$opt_c |= '';

for (@ARGV) {
  my @s = stat;
  next unless @s; # silently fail on to the next file
  my $p = $opt_c; # make a copy of the format string to mangle for each file

  # mangle and print
  $p =~ s/%n/$_/g;
  $p =~ s/%i/$s[1]/g;
  $p =~ s/%u/$s[4]/g;
  $p =~ s/%g/$s[5]/g;
  $p =~ s/%s/$s[7]/g;
  $p =~ s/%U/getpwuid($s[4])/eg;
  $p =~ s/%X/$s[8]/g;
  $p =~ s/%Y/$s[9]/g;
  $p =~ s/%Z/$s[10]/g;
  print "$p\n";

  #                 0 dev      device number of filesystem
  #                 1 ino      inode number
  #                 2 mode     file mode  (type and permissions)
  #                 3 nlink    number of (hard) links to the file
  #                 4 uid      numeric user ID of file's owner
  #                 5 gid      numeric group ID of file's owner
  #                 6 rdev     the device identifier (special files only)
  #                 7 size     total size of file, in bytes
  #                 8 atime    last access time in seconds since the epoch
  #                 9 mtime    last modify time in seconds since the epoch
  #                10 ctime    inode change time in seconds since the epoch (*)
  #                11 blksize  preferred block size for file system I/O
  #                12 blocks   actual number of blocks allocated

}

관련 정보