Mac | find: -printf: unknown primary or operator

find directory -type f -printf "%s\n" | awk '{ sum += $1; } END { print sum; }' | printf "%'d\n" $(cat)

と、やろうとしたら

find: -printf: unknown primary or operator

といわれる。
なにやら、Mac OSX の bash (zsh) のfind は少し違うらしい。
-printf がないらしい。

以下、参照という名のコピペ

問題あれば消しますコメントください。

Macでfindコマンドを使えるようにする

pointsandlines.jp

brew install findutils

インストール完了後、使用出来るコマンドは「gfind」となり間違えやすいのでエイリアスを作成する。

(.bash_profileへaliaseを記述する)

sudo vi ~/.bash_profile

vi インサートモードに切り替えて.bash_profileへ下記を追記

alias find=’gfind’

追記、保存が完了したらsourceコマンドで変更を反映

source ~/.bash_profile

Appendix

directory 以下のファイルの合計を取得(最後の| printf... は3桁区切り)

find directory -type f -printf "%s\n" | awk '{ sum += $1; } END { print sum; }' | printf "%'d\n" $(cat)

directory 以下のファイルの合計を取得(.DS_Store 除く)

find 'directory' -type f -not -name '.DS_Store' -printf "%s\n" | awk '{ sum += $1; } END { print sum; }' | printf "%'d\n" $(cat)

参照

it-ojisan.tokyo