2009-04-15 5 views

답변

36

이는 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-유저 랜드 시스템에 실패 할 수 있습니다.

+2

어떤 이유로이 명령은 OS X 10.8.4의 iTerm2에서 문자열 대신 숫자를 인쇄합니다. 대신, dmckee가 제안한''indutils'' 패키지의''gfind''가 잘 동작합니다. –

+0

% i이 inode를 출력하기 때문입니다. –

3

우분투는 GNU version of find과 함께 제공됩니다. 이는 Mac OS X의 find보다 더 특징적이며 BSD 계보입니다.

실제로 대부분의 우분투 사용자 토큰 유틸리티는 GNU 프로젝트의 것입니다. (따라서 "GNU/Linux"라고하는 리눅스 기반의 시스템을들을 때가 있습니다.)

13

글쎄, ephemientbendin은 그 원인을 규명하지 못했습니다.

GNU를 설치하는 것을 막을 수있는 곳이 없다고 덧붙이고 싶습니다. (findutils) find. fink을 사용하는 경우 findutils package이 있습니다. MacPortstoo입니다.

+8

당신은 [Homebrew] (http://brew.sh/)과 함께 설치할 수 있습니다 : 'brew install findutils' 'find' 대신'gfind'를 사용하십시오. – MacDada

+0

설치되었지만 여전히 오류가 발생합니까? – 3zzy

+0

@ 3zzy 경로에 GNU 버전이 포함되어 있습니까? 시스템 버전 전후에 제공됩니까? 'gfind'를 사용하면 GNU 버전을 강제로 사용할 수 있습니다. – dmckee

3

양자 택일로, 당신은 할 수 단지

find . -type f -exec stat -f "%z %N" {} \; 

부여, 이것은 당신이 리눅스에서 같은 일을 얼마나 아니지만, 맥 OS 작동

find . -type f -exec stat -c "%s %N" {} \; 

가 생성하는 유사 (동일하지 만, close) 리눅스에서 출력.

6

MAc OS X find 바이너리가 -printf 명령을 지원하지 않습니다. Mac에 brew install findutils을 설치하십시오. 이 명령은 -printf 옵션으로 gfind를 설치합니다.

관련 문제