LinuxでlsファイルサイズをMBで表示するには、どのコマンドが必要ですか?
LinuxでlsファイルサイズをMBで表示するには、どのコマンドが必要ですか?
回答:
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.1K、151K、7.1M、15M、1.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に感謝します。
--block-sizecoreutils 8.5があり、これは私のDebian Squeezeシステムにインストールされています。質問は明示的にLinux向けであり、他に何も指定していないため、GNU coreutilsを中心としたユーザーランドを想定していることは認めます。これを明確にするために回答を更新しました。(さらに、Open Group lsにも-hがないようです。:))
--block-sizeGNU拡張機能です。Mac OS XはGNUを使用していないと思われますls。
ls -lh 人間が読めるファイルサイズ、長い形式を提供します。
必要に応じてk、M、G、およびTサフィックス(またはバイトのサフィックスなし)を使用するため、番号は小さくなります(例:1.4Kまたは)178M。
-h ベースラインPOSIXではなく、GNU coreutils拡張機能です。
これは、尋ねられたとおりの質問に正確に答えないことに注意してください。サイズが小さくても巨大なファイルでもMiBで厳密にサイズが必要な場合、MichaelKjörlingの答えはGNU coreutilsでそれを行いますls。
h書くよりはるかに簡単です--block-size=M
ls -l人間ではないとしても、だれが使用しますか?:p
ls -l出力の解析は、物事を行うための間違った方法であり、99%の時間です。 unix.stackexchange.com/questions/128985/why-not-parse-ls。その1%は寛大で、不明なファイル名で繰り返し使用するスクリプトではなく、1回使用するためにインタラクティブに記述する1行にほぼ制限されています。
ls -lhS 人間が読める形式でサイズで並べ替え
ls -lhこれが実際に質問に答えない理由については、回答に関するコメントを参照してください。
--block-size=M原因M次のサイズに表示されるサフィックスを、そしてあなたが使用することができ--block-size=1M、それを省略します。そのためにはGNU lsが必要であることも言及する価値があります(ほとんどの非組み込みLinuxシステムにはGNU lsがあります)。