私のコンピュータ上のすべてのファイルを一覧表示しました。
FILES=$(find . -type f -name '*' -printf "%s/%f\n" | sort -n)
出力は次のようになります。
"size/file_name"
56872/file.txt
98566/test
1000254/foo
コンピュータでエラーが発生します。
find: -printf: unknown primary or operator
解決策はありますか?
ベストアンサー1
この-printf
オプションは使用できません。POSIX
find
。これがGNUの特徴ですfind
、例えばLinuxの場合。
使用している特定の実装は表示されません。おそらく拡張がないPOSIXでしょう。たとえば、そうではありません。FreeBSDまたはOSX。
ない場合は、次のようないくつかの選択肢があります(埋め込まれたスペースなどを処理しませんが、ツールについてはほとんど想定していません)。
find . -type f -exec ls -ld {} \; | awk '{ gsub("^.*/","",$9); printf "%s/%s\n", $5, $9; }'
利用可能なツールに関する追加情報を使用すると、(通常)ソリューションを改善できます。