Macの検索にオプション-printfがない理由は見つかりませんでした。 Apple通常、他のコマンドと直交していないオプションを削除することを決定しますか?
Macで次のコマンドと同じ結果を得るにはどうすればよいですか coreutilsなしで?
find . -printf "%i \n" // command in Ubuntu
Appleがオプションを削除するわけではありません。OSXのUNIXの基盤はほとんどFreeBSDから(回路的に)派生しており、その多くの部分は元のUNIXにまでさかのぼることができます... GNUユーティリティ。多くの機能が追加された再実装です。
この場合、 FreeBSDのfind(1)
は_-printf
_をサポートしていないので、OSXもサポートしていないと思います。代わりに、これはBSD風のシステムで機能するはずです。
_find . -print0 | xargs -0 stat -f '%i '
_
ただし、xargs(1)
とstat(1)
の動作が異なるため、_xargs -0 -r stat -c '%i '
_を記述するGNUユーザーランドシステムでは失敗します。
MAc OS Xfindバイナリは-printfコマンドをサポートしていません。インストールbrew install findutils
お使いのMacで。これは、-printfオプションを指定してgfindをインストールします。
または、
find . -type f -exec stat -f "%z %N" {} \;
確かに、これはLinuxで同じことを行う方法ではありませんが、MacOSでは機能します
find . -type f -exec stat -c "%s %N" {} \;
linuxで同様の(同じではありませんが、近い)出力を生成します。
Ubuntuには GNUバージョンのfind が付属しています。これは、Mac OS Xのfind( [〜#〜] bsd [〜#〜] 系統)よりも機能的です。
実際、UbuntuのユーザーランドユーティリティのほとんどはGNUプロジェクトからのものです(したがって、「GNU/Linux」と呼ばれるLinuxベースのシステムを聞くことがあります)。