Mac의 find에 -printf 옵션이없는 이유를 찾지 못했습니다. Apple은 일반적으로 다른 명령과 직교하지 않는 옵션을 사용하기로 결정합니까?find에는 -printf 옵션이 없습니다. 이제 무엇이 필요합니까?
어떻게하면 coreutils가없는 Mac의 다음 명령과 같은 결과에 도달 할 수 있습니까?
find . -printf "%i \n" // command in Ubuntu
Mac의 find에 -printf 옵션이없는 이유를 찾지 못했습니다. Apple은 일반적으로 다른 명령과 직교하지 않는 옵션을 사용하기로 결정합니까?find에는 -printf 옵션이 없습니다. 이제 무엇이 필요합니까?
어떻게하면 coreutils가없는 Mac의 다음 명령과 같은 결과에 도달 할 수 있습니까?
find . -printf "%i \n" // command in Ubuntu
이는 GNU 유틸리티 반대로 OS X의 UNIX 토대가 대부분 ..., FreeBSD의에서 (circuitously)있는 원래 UNIX로 다시 추적 할 수있는 많은 부분을 파생되어있어, 애플이 옵션을 제거하는 것이 아니라 이는 많은 기능이 추가 된 재 구현입니다.
이 경우 FreeBSD's find(1)
은 -printf
을 지원하지 않으므로 OS X도 기대하지 않습니다. 대신, 이것은 BSD 틱 시스템에서 작동합니다 : 당신의 행동이 다른 xargs -0 -r stat -c '%i '
xargs(1)
때문에 stat(1)
쓰기 할 위치
find . -print0 | xargs -0 stat -f '%i '
그것은, 비록 GNU-유저 랜드 시스템에 실패 할 수 있습니다.
우분투는 GNU version of find과 함께 제공됩니다. 이는 Mac OS X의 find보다 더 특징적이며 BSD 계보입니다.
실제로 대부분의 우분투 사용자 토큰 유틸리티는 GNU 프로젝트의 것입니다. (따라서 "GNU/Linux"라고하는 리눅스 기반의 시스템을들을 때가 있습니다.)
양자 택일로, 당신은 할 수 단지
find . -type f -exec stat -f "%z %N" {} \;
부여, 이것은 당신이 리눅스에서 같은 일을 얼마나 아니지만, 맥 OS 작동
find . -type f -exec stat -c "%s %N" {} \;
가 생성하는 유사 (동일하지 만, close) 리눅스에서 출력.
MAc OS X find 바이너리가 -printf 명령을 지원하지 않습니다. Mac에 brew install findutils
을 설치하십시오. 이 명령은 -printf 옵션으로 gfind를 설치합니다.
어떤 이유로이 명령은 OS X 10.8.4의 iTerm2에서 문자열 대신 숫자를 인쇄합니다. 대신, dmckee가 제안한''indutils'' 패키지의''gfind''가 잘 동작합니다. –
% i이 inode를 출력하기 때문입니다. –