ls-command:ファイルサイズをメガバイト単位で表示する方法


161

Unix(Tru64)では、lsコマンドでファイルサイズをメガバイト単位で表示するにはどうすればよいですか?現在、次を使用してバイト単位で表示できます。

ls -la

回答:


247

たぶん-hあなたには十分です:

-h
-lオプションと一緒に使用する場合、サイズにベース2を使用して桁数を3以下に減らすために、バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイトの単位サフィックスを使用します。

ls -lah

一般的なアドバイス:man commandname特定のコマンドのマニュアル/ヘルプを読むために使用します(例:ここ)man ls


1
ありがとうございますが、-hオプションはTru64 Unixには存在しないようです。

8
一般的なアドバイス:GNUユーティリティをインストールします...
reinierpost

22
私は人を使うことについてのあなたのヒントが好きですが、実際には、Googleでの検索は、人を多くの時間使用するよりもはるかに高速です(現在、Googleでこの結果を見つけたとき)。
trusktr

4
Googleのすばらしいヒントはすべて一般的なヒントですが、最終的にはmanページはシステム/ OSであり、ホスト固有であり、通常はソフトウェアのコンパイルまたはインストール時に作成されるため、特定のシステムのソフトウェアに対して権限があります。
ネビンウィリアムズ

1
完全に一周するために、gnu / linuxのオンラインの男がいます:linux.die.net/man
MariusMatutiae

32

ls --block-size=Mサイズをメガバイトで出力しますが、1 MB未満の場合も1 MBを表示します。ただし、UNIXバージョンのlsでこのオプションが受け入れられるかどうかはわかりません。

ls -lhファイルが十分に大きい場合、実際にはギガバイト単位でサイズも印刷します(とにかく:Linux 64ビットでは、これは動作します:>)

サイドノード:du -sh *現在のディレクトリのディレクトリサイズも出力します。


ありがとう!フォルダー内のライブファイルの変更を監視する必要がありls -h、ファイルが1GBを超えると使用は無意味になるため、このコマンドを1秒のループで使用しますwhile true ; do ls -al --block-size=M ; sleep 1 ; done
。– ccpizza

15

あなたはあなたのawkために数学を行うために使用する必要があります:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

これは、より小さいファイルの出力には影響しませんmega

lsレイアウト方法に合わせてフィールド番号を調整する必要がある場合があります。mega好みに応じて「1000000」に変更できます。

これにより、おそらく必要以上に小数点以下の桁が出力されます。丸め関数を実装できます。


3
ls -lhまたはls --block-size=Mに比べてはるかにエレガントではありませんが、AWKは非常に便利です!
Statwonk

ちょうど私が必要なもの。他のすべてのソリューションは最も近いMBに丸められますが、これは少数の小数位を示し、簡単にカスタマイズできます。
zeroimpl 14年

3
これは、-hオプションを持たないシステム(AIX-私はあなたを見ています)にとって素晴らしい解決策です。
ブガビリル


8

try ls -lash、サイズを人間が読める形式で印刷します


5

du -sm filename.txt


1
常にサイズを切り上げます...サイズが1 MB未満の場合は500Kと言い、1Mを印刷します
AnonGeek

5

入力することもできます

du -sh ./*

これにより、現在のディレクトリの下にあるすべてのフォルダが、Kb、Mb、Gbのより馴染みのあるファイルサイズなど、人間が読み取れる形式で一覧表示されます。


2

特定のファイルのみのサイズが必要な場合、コマンドは、以前の回答の簡単な外挿であり、次のとおりです。

ls -sh ファイル名

-sはサイズ用であり、h人間が読めるもの用です(上記で何度か述べたように)。

出力は次のようになります。

753M myfilename

ファイル名を省略すると、ディレクトリがリストされ、各ファイルのサイズが名前の隣に配置さls -laれます。ファイル名引数なしで呼び出された場合とは異なります。

お役に立てれば。


2
この質問はTru64 Unixに関するものであり、OPはほぼ5年前-hls、そのシステムにはオプションが存在しないと述べました。
Gマン

2
ls -l --block-size=MB 

以下のための--block-sizeパラメータ:

  • MB10 ^ 6に使用
  • M2 ^ 20 だけに使用

これは、小数点以下の桁を表示しないことに注意してください。また、0 kBを超えるが1 MBを超えるものはすべてとして表示され1MBます。このため、私はls -l --block-size=kBより便利であることがわかりました。
DaAwesomeP

0

ファイルサイズだけに興味があり、lsコマンドを使用する必要がない場合は、次を試してください。

# echo "Hello World" > file.txt
# ls -l file.txt 
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12

これにより、何も解析する必要なくファイルサイズが出力されます。


OPはMB単位のサイズが必要です。多分statオプションは人間が読める形式でサイズを生成しますか?
アーケマー

ああ、それは私の馬鹿だった。キャッチしてくれてありがとう。私の知る限り、statには--printfまたはその他のオプションを使用してサイズを操作するオプションがありません。printfとbcコマンドラインユーティリティの組み合わせを使用する必要があります。その場合、なぜわざわざ。lsおよびcut / awkの方が高速です。
SKN
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.