2016-08-31 1 views
0

シェルから人間にやさしいファイルサイズを取得するには、以下を使用しています。UNIX系の環境でシェルから人間にやさしいファイルサイズを取得する[移植性]

ls -hl /path/to/file | awk '{print $5}' 

これはbashでMac OSXでうまく動作します。私は本当に移植可能か、同じ結果を達成するための標準的な移植可能な方法があるかどうかはわかりません。

+1

'ls'を解析する代わりに、' stat'マンページを確認してください。 –

+0

しかし、移植性のために、複数のプラットフォームで同じように動作する汎用言語を使いたいと思うでしょう。例えばhttp://stackoverflow.com/a/512645/7552 –

+0

あなたはどのようにポータブルを探していますか? POSIX? SUS?ビジーボックスを実行している組み込みシステム? – cxw

答えて

1

du(1)のほとんどの実装では、-hフラグを受け入れます。これにより、指定されたファイルのディスク使用量が出力されます。ディスク使用量とファイルサイズの差異、通常は無害です。最も近いファイルシステムブロックに切り上げます。

広くサポートされていますが、-hフラグは拡張です。移植性を最大限に高めるには、ユニットの変換を手作業で行う必要があります。pointed out by chepner

*BSD,Illumos,BusyBoxおよびGNU CoreUtilsは全て-hフラグをサポートする。

0

本当に厳密なPOSIX互換性が必要な場合は、this answer to a very similar questionで提案されているようにして、自分の計算を行います(例えば、awk)。 "人間にやさしい"値を計算します。

関連する問題