2009-04-15 26 views

Trả lời

36

Nó không phải là của Apple loại bỏ tùy chọn, đó là nền tảng UNIX OS X của hầu hết có nguồn gốc (circuitously) từ FreeBSD, nhiều nơi trong số đó có thể được truy trở lại UNIX gốc ... như trái ngược với các tiện ích GNU , đó là triển khai lại với nhiều tính năng được thêm vào.

Trong trường hợp này, FreeBSD's find(1) không hỗ trợ -printf, vì vậy tôi cũng không mong đợi OS X. Thay vào đó, điều này sẽ làm việc trên một hệ thống BSD-ish:

find . -print0 | xargs -0 stat -f '%i ' 

Nó sẽ thất bại trên một hệ thống GNU-Userland, tuy nhiên, nơi bạn muốn viết xargs -0 -r stat -c '%i 'xargs(1)stat(1) hành vi là khác nhau.

+2

Vì một số lý do, số này in số thay vì chuỗi trong iTerm2 trên OS X 10.8.4. Thay vào đó, 'gfind' từ gói' indutils' của MacPorts được đề xuất bởi dmckee hoạt động tốt. –

+0

Đó là vì% i in inode. –

3

Tàu Ubuntu có mã số GNU version of find, có nhiều tính năng hơn so với tìm thấy của Mac OS X, là dòng số BSD.

Thực tế, hầu hết các tiện ích sử dụng đất của Ubuntu là từ dự án GNU. (Vì vậy, đôi khi bạn sẽ nghe thấy các hệ thống dựa trên Linux được gọi là "GNU/Linux".)

13

Vâng, ephemientbendin đóng đinh nguyên nhân.

Tôi muốn thêm rằng không có gì ngăn bạn cài đặt GNU tìm thấy (từ findutils) nếu bạn cần. Nếu bạn sử dụng fink thì có findutils package. MacPorts có số điện thoại too.

+8

Bạn cũng có thể cài đặt nó với [Homebrew] (http://brew.sh/): 'công cụ cài đặt pha ' Sử dụng' gfind' thay vì 'tìm'. – MacDada

+0

Đã cài đặt nhưng vẫn gặp lỗi? – 3zzy

+0

@ 3zzy Đường dẫn của bạn có bao gồm phiên bản GNU không? Nó có đến trước hoặc sau phiên bản hệ thống không? Sử dụng 'gfind' có thể sử dụng phiên bản GNU. – dmckee

3

Ngoài ra, bạn có thể chỉ

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

Cấp, đây không phải là cách bạn sẽ làm điều tương tự trên Linux, nhưng hoạt động cho hệ điều hành MacOS

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

sản xuất tương tự (không giống nhau, nhưng đóng) đầu ra trên Linux.

6

MAc OS X tìm nhị phân không hỗ trợ lệnh -printf. Cài đặt brew install findutils trên máy Mac của bạn. Điều này gfind cài đặt với tùy chọn -printf.

Các vấn đề liên quan