truss 명령의 통계 사용?

truss 명령의 통계 사용?

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을 실행하고 싶을 수도 있습니다 .sshsftptruss

관련 정보