lsでファイルサイズをメガバイト単位で表示するにはどうすればよいですか?


回答:


513

ls -l --block-size=M長い形式のリスト(実際にファイルサイズを表示する必要があります)を提供し、ファイルサイズを最も近いMiBに切り上げます

MiB(2 ^ 20バイト)単位では--block-size=MBなくMB(10 ^ 6バイト)が必要な場合は、代わりに使用します。

Mファイルサイズに接尾辞を付けたくない場合は、のようなものを使用できます--block-size=1M。これを提案してくれたStéphaneChazelasに感謝します。

特にメガバイトではなく、「合理的な」単位のファイルサイズが必要な場合は-lh、長い形式のリストと人間が読めるファイルサイズのプレゼンテーションを取得するために使用できます。(あなたがのようなファイルのサイズがわかりますこれは、約1〜3桁の数字を提示ファイルのサイズを維持するために、ファイルサイズの単位を使用します6.1K151K7.1M15M1.5Gなどを。

--block-sizeパラメータは、LSのmanページに記述されています。man lsを検索しSIZEます。同様に、MB / MiB以外のユニットも使用できます。また、その外観から(私は試していない)任意のブロックサイズ(したがって、必要に応じてファイルサイズを429バイトブロックの数として見ることができます)に)。

両方のことに注意してください--block-size-hの上のGNU拡張であるOpen Groupのlsため、あなたは(ほとんどのLinuxのインストールが行う)GNUユーザランドを持っていない場合、これは動作しない場合があります。lsGNUのCoreutils 8.5からは、上述したように--blockサイズと-hをサポートしています。これを指摘してくれたkojiroに感謝します。


11
気付い多分価値が違い:--block-size=M原因M次のサイズに表示されるサフィックスを、そしてあなたが使用することができ--block-size=1M、それを省略します。そのためにはGNU lsが必要であることも言及する価値があります(ほとんどの非組み込みLinuxシステムにはGNU lsがあります)。
ステファンシャゼル

2
これはGNU lsでしょうか?標準にlsはそのような議論はありません。ではXSI拡張 lsあり-s、それはブロックの数を報告しますフラグを、しかし、標準的なフラグはありません--block-size
小次郎

2
@kojiro GNU lsには--block-sizecoreutils 8.5があり、これは私のDebian Squeezeシステムにインストールされています。質問は明示的にLinux向けであり、他に何も指定していないため、GNU coreutilsを中心としたユーザーランドを想定していることは認めます。これを明確にするために回答を更新しました。(さらに、Open Group lsにも-hがないようです。:)
CVn

2
@EmanuelBerg、^ 7 1000(10 ^ 21)(〜10 ^ 19.27である)2 ^ 64よりも大きい
ステファンChazelas

4
@Tom答えの最後の段落で述べているように、これは--block-sizeGNU拡張機能です。Mac OS XはGNUを使用していないと思われますls
CVn

385

ls -lh 人間が読めるファイルサイズ、長い形式を提供します。

必要に応じてk、M、G、およびTサフィックス(またはバイトのサフィックスなし)を使用するため、番号は小さくなります(例:1.4Kまたは)178M

-h ベースラインPOSIXではなく、GNU coreutils拡張機能です。

これは、尋ねられたとおりの質問に正確に答えないことに注意してください。サイズが小さくても巨大なファイルでもMiBで厳密にサイズが必要な場合、MichaelKjörlingの答えはGNU coreutilsでそれを行いますls


4
これにより、1.0 GiB未満のファイルサイズ(GB単位)が印刷されます(私は信じています)。
CVn

5
@MichaelKjörlingそれを悪い答えとは思わない(私は賛成しなかったが)。OPが質問を正確に表現しないことがあるため、人間が読める形式の出力を望み、代わりに「in MB」と表現することもできました。
デイソン

5
賛成。「これは(MB)の質問に答えません」は完全に有効な記述ですが、この答えは同じコンテキストにあるため、このSOページの有用性を高めるだけです。このページに来たのは、一般的な「人間が読める形式で日付を表示する」要件に対する解決策を探しているだけで、h書くよりはるかに簡単です--block-size=M
-Ejaz

6
「人間が読める」というのは皮肉なことです。ls -l人間ではないとしても、だれが使用しますか?:p
phil294

2
@chengyang:ls -l出力の解析は、物事を行うための間違った方法であり、99%の時間です。 unix.stackexchange.com/questions/128985/why-not-parse-ls。その1%は寛大で、不明なファイル名で繰り返し使用するスクリプトではなく、1回使用するためにインタラクティブに記述する1行にほぼ制限されています。
ピーター

45

ls -lhS 人間が読める形式でサイズで並べ替え


2
ls -lhこれが実際に質問に答えない理由については、回答に関するコメントを参照してください。
アレクサンダーバティシェフ16年

2
これは実際に質問に答えないだけでなく(Sirexの回答へのコメントで説明されているように)、既存の回答に関連するものも追加しません。OPはソート順を尋ねません。
CVn

6
サイズによるソートは、人々が持つかもしれないフォローアップの可能性があると思った、少なくともそれは私が持っていたものです
-jaciefan

1
その場合、人々は、まさにそのシナリオであるサイズによって順序付けられたすべてのファイルをリストする方法を見るべきです。
CVn

私はそれがSirexの答えに詳しく説明特に、これは答えに値するほかであると信じる
Dowlers

9

そして、これは、ファイルサイズ(昇順)でディレクトリ順にすべてをリストするオプションです。

ls -lSrh

質問に答えていない他の回答からのコメントはこの質問にも当てはまると思いますか?
ダンダスカレスク

@DanDascalescuいいえ。これらのコメントは役に立たず、問題の2つの回答があります。彼が何も知らないLinuxシステムでファイルサイズをリストする方法を見つけようとするハックとしてのちょうど2セント。
ダウラーズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.