回答:
たぶん-h
あなたには十分です:
-h
-lオプションと一緒に使用する場合、サイズにベース2を使用して桁数を3以下に減らすために、バイト、キロバイト、メガバイト、ギガバイト、テラバイト、ペタバイトの単位サフィックスを使用します。
ls -lah
一般的なアドバイス:man commandname
特定のコマンドのマニュアル/ヘルプを読むために使用します(例:ここ)man ls
。
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
あなたはあなたのawk
ために数学を行うために使用する必要があります:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
これは、より小さいファイルの出力には影響しませんmega
。
ls
レイアウト方法に合わせてフィールド番号を調整する必要がある場合があります。mega
好みに応じて「1000000」に変更できます。
これにより、おそらく必要以上に小数点以下の桁が出力されます。丸め関数を実装できます。
ls -lh
またはls --block-size=M
に比べてはるかにエレガントではありませんが、AWKは非常に便利です!
ls -shR
再帰的な人間が読める形式を試してください。
-h
Tru64 には何もないと述べており、この回答が投稿される前に2年以上にわたってそうしました。
特定のファイルのみのサイズが必要な場合、コマンドは、以前の回答の簡単な外挿であり、次のとおりです。
ls -sh ファイル名
-s
はサイズ用であり、h
人間が読めるもの用です(上記で何度か述べたように)。
出力は次のようになります。
753M myfilename
ファイル名を省略すると、ディレクトリがリストされ、各ファイルのサイズが名前の隣に配置さls -la
れます。ファイル名引数なしで呼び出された場合とは異なります。
お役に立てれば。
-h
にls
、そのシステムにはオプションが存在しないと述べました。
ls -l --block-size=MB
以下のための--block-size
パラメータ:
MB
10 ^ 6に使用M
2 ^ 20 だけに使用1MB
ます。このため、私はls -l --block-size=kB
より便利であることがわかりました。
ファイルサイズだけに興味があり、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
これにより、何も解析する必要なくファイルサイズが出力されます。