Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
stat / file / du / df
『stat』はファイルの詳細メタ情報を表示し、『file』はファイルの種類を判定し、『du』はディスク使用量を、『df』はファイルシステムの空き容量を確認するコマンドです。
構文
stat [オプション] ファイル file [オプション] ファイル du [オプション] [パス...] df [オプション] [ファイルシステム...]
コマンド・オプション一覧
| コマンド / オプション | 概要 |
|---|---|
| stat ファイル | ファイルのinode番号・サイズ・パーミッション・タイムスタンプ(アクセス/更新/変更)を詳細表示します。 |
| stat -c "%s" ファイル | バイト数のみを出力します(スクリプト内での利用に便利)。 |
| file ファイル | ファイルの内容を解析して種類を表示します(テキスト・ELFバイナリ・画像など)。 |
| du ディレクトリ | ディレクトリ以下の各ファイル・ディレクトリのディスク使用量を表示します。 |
| du -s パス | 合計のみ表示します(サブディレクトリを展開しません)。 |
| du -sh パス | 合計を人間が読みやすい単位(K・M・G)で表示します。 |
| du -h --max-depth=1 | 1階層分のみ展開してサイズを表示します。 |
| du -sh * | sort -h | カレントディレクトリの各エントリをサイズ順に並べます。 |
| df | すべてのファイルシステムのマウント状況・使用量・空き容量を表示します。 |
| df -h | 人間が読みやすい単位で表示します。 |
| df -T | ファイルシステムの種類(ext4・xfs・tmpfsなど)も表示します。 |
サンプルコード
以下のディレクトリ構造を例に説明します。
ファイルの詳細メタ情報を表示します。
stat deploy.sh
File: deploy.sh Size: 1024 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 123456 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 1000/ user) Gid: ( 1000/ user) Access: 2026-03-05 10:00:00.000000000 +0900 Modify: 2026-03-05 09:30:00.000000000 +0900
ファイルの種類を判定します。拡張子に依存せず、内容を解析して判定します。
file deploy.sh
deploy.sh: Bourne-Again shell script, ASCII text executable
file data.bin
data.bin: ELF 64-bit LSB shared object, x86-64
file images/photo.jpg
images/photo.jpg: JPEG image data, JFIF standard 1.01
カレントディレクトリ全体のサイズを人間が読みやすい形式で表示します。
du -sh .
3.4M .
1階層ずつのサイズを確認します。大きなディレクトリを探すときに便利です。
du -sh */
3.2M images/ 128K logs/
サイズ順に並べ替えてランキング表示します。
du -sh * | sort -h
1.0K deploy.sh 4.0K data.bin 128K logs 3.2M images
全ファイルシステムの空き容量を確認します。
df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 18G 30G 38% / tmpfs 2.0G 1.2M 2.0G 1% /run
特定のパスが含まれるファイルシステムのみ表示します。
df -h /var
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 18G 30G 38% /
概要
『du -sh * | sort -h』はディスクを圧迫しているディレクトリを見つけるときに非常に役立ちます。サーバーのディスク残量が減ってきたら、まず『df -h』で全体を把握し、次に『du -sh */』で大きなディレクトリを絞り込んでいくのが定石です。
ファイルの一覧確認は『ls -lh』も参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。