저는 El Capitan v 10.11.6을 실행하는 Macbook Pro를 사용하고 있습니다. 심볼릭 링크에 대해 배우고 있는데 man ln
페이지에서 다음을 발견했습니다.
심볼릭 링크의 stat(2)는 링크된 파일을 반환합니다. 링크에 대한 정보를 얻으려면 lstat(2)를 실행해야 합니다.
테스트로 다음과 같이 파일에 대한 심볼릭 링크를 만들었습니다(중요한 경우 다른 파일 시스템에 있음).
ln -s /Volumes/foobardir/foobarfile foobarlink
그런 다음 심볼릭 링크 파일 자체에 대한 정보를 얻기 위해 실행했지만 lstat foobarlink
다음과 같은 결과를 얻었습니다.
-bash: lstat: command not found
이 명령은 which lstat
아무것도 반환하지 않습니다. 이는 해당 이름을 가진 실행 파일이 내 파일 경로에 존재하지 않음을 확인합니다.
을 실행할 수 있지만 stat foobarlink
반환된 통계가 링크된 파일에 대한 것인지 아니면 심볼릭 링크 자체에 대한 것인지 확실하지 않습니다. 명령 출력에는 오늘 날짜가 타임스탬프로 표시되지만, 실행하는 동안 stat foobarfile
몇 달 전의 날짜가 표시됩니다. 그래서 이것이 제가 찾고 있는 결과라고 생각합니다. 하지만 저는 두 번째 의견을 원합니다.
그건 그렇고, 실행은 which stat
return 입니다 /usr/bin/stat
. 이름에 모든 실행 파일이 포함된 디렉터리 의 A는 grep
다음을 반환합니다./usr/bin
stat
- 데이터베이스 통계
- 차이 통계
- httpdstat.d
- 통계자료
- 통계자료
- 잠금 상태
- 매개변수 통계
- NFS 통계
- 시계 통계
- SNMP 네트워크 통계
- SNMP 상태
- 통계자료
- 유스타트
- 가상 머신 상태
위에서 말했듯이, 내 추측은 stat
반환될 것으로 예상되는 출력을 반환하는 것입니다. lstat
내 질문은 다음과 같습니다
- 유효한 명령으로 인식되는데 왜
lstat
내 시스템에 설치되지 않은 것 같나요 ?man lstat
lstat
- 함께 제공되지 않는 실행 파일에 대한 수동 정보를 포함하는 이유는 무엇입니까?
brew search lstat
결과가 반환되지 않았습니다. 내 로컬 컴퓨터에 어떻게든 설치할 수 있나요lstat
? 그렇게 하면 어떤 이점이 있나요?
답변1
BSD 매뉴얼의 파트 1은 일반 명령입니다. 파트 2는 시스템 호출을 위한 것입니다.즉C
, 이 언어나 그 파생어 중 하나를 사용하여 시스템을 프로그래밍하는 경우 함수 호출을 할 수 있습니다.
괄호 안의 숫자는 해당 항목이 설명서의 어느 부분에서 나온 것인지 나타냅니다. 이 경우 lstat(2)
이 페이지는 명령줄에서 실행할 수 있는 독립 실행형 바이너리에 대한 정보가 아닌 시스템 호출에 대한 정보를 제공한다는 의미입니다.
를 입력하면 man lstat
시스템 호출에 대한 매뉴얼 페이지가 표시됩니다 lstat
. stat
대조적으로, 그것은둘 다시스템 호출 및 독립 실행형 유틸리티. 를 입력하면 man stat
기본적으로 명령줄 유틸리티에 대한 매뉴얼 페이지가 표시됩니다. 시스템 호출 매뉴얼 페이지를 보려면 man
매뉴얼의 어느 부분을 검색할지 명시적으로 지정해야 합니다.
man 2 stat
https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man5/manpages.5.htmlBSD 매뉴얼의 모든 부분을 나열하는 (오래된) 링크입니다. 이러한 부분은 귀하의 시스템에서도 동일하지만 이러한 부분을 명시적으로 나열하는 매뉴얼 페이지를 찾을 수 없습니다.