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にさかのぼることができ、多くの部品を導出していることだが、Appleはオプションを削除することはありませんこれは多くの機能が追加された再実装です。
この場合、FreeBSD's find(1)
は-printf
をサポートしていませんので、OS Xもどちらでもないと思います。その代わり、これはBSDっぽいシステム上で動作するはずです:
find . -print0 | xargs -0 stat -f '%i '
それはxargs(1)
とstat(1)
動作が異なっているので、あなたがxargs -0 -r stat -c '%i '
を書くと思いますけれども、GNUユーザランドシステム、上で失敗します。
Ubuntuには、が付属しています。これは、Mac OS Xのfindよりも機能が豊富で、BSD系のものです。
実際、UbuntuのユーザランドユーティリティのほとんどはGNUプロジェクトのものです。 (したがって、「GNU/Linux」と呼ばれるLinuxベースのシステムが聞こえることがあります。)
私はGNU find(あなたがそれを必要とすればfindutilsから)をインストールするのを止めるものは何もないと付け加えたいと思います。 finkを使用する場合、findutils
packageがあります。 MacPortsはtooです。
また、あなたはできるだけ
find . -type f -exec stat -f "%z %N" {} \;
確かに、これはあなたがLinux上で同じことをするだろうかではなく、MacOSのために働く
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によって提案されたMacPortsの 'indutils'パッケージからの' gfind'がうまく動作します。 –
これは、%iがiノードを出力するからです。 –