2009-04-15 62 views

回答

36

這並不是說蘋果刪除選項,那就是OS X的UNIX基礎大多是派生(迂迴)從FreeBSD中,許多地方的這些都可以追溯到原始的UNIX ......相對於GNU工具,這些重新實現添加了許多功能。

在這種情況下,FreeBSD's find(1)不支持-printf,所以我不希望OS X的。相反,這應該是BSD十歲上下的系統上運行:

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

它會失效了一個GNU用戶態的系統上,不過,在那裏你會寫xargs -0 -r stat -c '%i '因爲xargs(1)stat(1)行爲是不同的。

+2

出於某種原因,這種打印數量,而不是在OS X 10.8.4中iTerm2字符串。相反,來自dmckee建議的MacPorts的indutils包中的`gfind`可以正常工作。 – 2013-10-13 18:46:17

+0

這是因爲%i打印了inode。 – 2017-03-07 16:15:02

3

Ubuntu附帶GNU version of find,它比Mac OS X的查找更具功能,它是BSD沿襲。

事實上,大多數的Ubuntu的用戶空間實用程序從GNU項目。 (因此你有時會聽到基於Linux的系統被稱爲「GNU/Linux」)。

3

或者,你可以只

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

當然,這是不是你會怎麼做在Linux同樣的事情,但適用於MacOS的

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

產生類似的(不相同,但關閉)在linux上輸出。

6

Mac OS X中找到二進制不支持-printf命令。在您的Mac上安裝brew install findutils。這會使用-printf選項安裝gfind。