Linux'のls
でファイルサイズをMB単位で表示するには、どのようなコマンドが必要ですか?
ls -l --block-size=M`とすると、(実際にファイルサイズを確認するために必要な)長いフォーマットのリストが表示され、ファイルサイズを最も近いMiBに*丸めることができます。
もし、MiB(2^20バイト)ではなく、MB(10^6バイト)単位で表示したい場合は、代わりに --block-size=MB
を使用してください。
ファイルサイズに「M」というサフィックスを付けたくない場合は、 「--block-size=1M」のようにしてください。これを提案してくれた Stéphane Chazelas に感謝します。
特にメガバイト*ではなく、単純に妥当な単位でファイルサイズを知りたい場合には、-lh
を使って長いフォーマットのリストと人間が読めるファイルサイズの表示を得ることができます。これは、ファイルサイズの単位を使用して、ファイルサイズを1~3桁程度で表示するようになっています(したがって、ファイルサイズは、6.1K
、151K
、7.1M
、15M
、1.5G
などと表示されます)。
man lsで
SIZE` を検索してください。MB/MiB以外の単位も使えますし、見たところ(試してはいませんが)、任意のブロックサイズも使えます(つまり、ファイルサイズを429バイトのブロック数として見ることもできます)。
なお、--block-size
と-h
は、the Open Group's ls
をベースにしたGNU拡張であるため、GNUユーザーランドがない場合は動作しないかもしれません(ほとんどのLinuxはそうなっていますが)。GNU Coreutils 8.5 の ls
は、上記のように --block-size と -h をサポートしています。これを指摘してくれたkojiroに感謝します。
ls -lh` は人間が読めるファイルサイズをロングフォーマットで表示します。
必要に応じて k, M, G, T の接尾辞 (バイトの場合は接尾辞なし) を使うので、例えば 1.4K
や 178M
のように小さな数字になります。
h` は GNU coreutils の拡張であり、baseline POSIX ではありません。
ただし、これは質問に正確に答えているわけではありません。 もし、小さなファイルや巨大なファイルのサイズを厳密にMiBで表したいのであれば、Michael Kjörling's answer does that for GNU coreutils ls
を参照してください。