unixSolaris 시스템에서 파일의 액세스 시간과 수정 시간을 얻고 싶습니다. 이 Solaris 컴퓨터에서는 `stats 명령을 찾을 수 없습니다. 파일의 액세스 시간과 수정 시간을 찾는 데 사용할 명령을 제안해 주시겠습니까? 나는 다음을 사용했습니다 (분명히 작동하지 않습니다).
sftp> truss -f -v 'lstat,lstat64' ls -d 140901.log
Invalid command.
명령을 제안해 주실 수 있나요?
답변1
truss
컴퓨터에 설치되었을 가능성이 높으며, 문제는 sftp
쉘 프롬프트가 아닌 쉘 프롬프트에서 호출한다는 것입니다.
후자의 경우 Solaris 표준 명령을 사용하여 액세스 및 수정 시간을 얻는 방법은 다음과 같습니다.
$ truss -f -v 'lstat,lstat64' ls -d . 2>&1 | grep '[am]t ='
29879: at = Jul 16 17:20:56 CEST 2014 [ 1405524056.485059303 ]
29879: mt = Aug 18 23:34:35 CEST 2014 [ 1408397675.814979313 ]
답변2
이 stat
명령은 POSIX에 의해 정의되지 않으며 일부 *nix 시스템에서는 사용할 수 없습니다. 실제로 POSIX에서 정의한 CLI 유틸리티는 시간을 반환하지 않습니다. 사용은 perl
대부분의 *nix 시스템에서 작동하는 방법입니다. 다음은 쉘 스크립트에서 사용할 수 있는 한 줄의 코드입니다.
perl -sle '@s = stat($filename); print "atime: $s[8]\nmtime:$s[9]"' -- -filename=foo
답변3
/usr/bin/stat
내 Solaris 11 시스템에서. 이는 패키지의 일부로 설치됩니다 gnu-coreutils
.
또한 하위 명령이 truss
아닙니다 . 를 실행하는 대신 세션 sftp
을 실행하고 싶을 수도 있습니다 .ssh
sftp
truss