/Linuxコマンド

ファイル

ファイルの情報とディスク容量

stat・file・du・df・wc・realpath など、ファイルの中身を変えずに情報を調べるコマンド。ディスクそのものの操作は「ディスクとファイルシステム」へ。

statファイルの詳しい情報

ファイルの大きさ・権限・所有者・日時などの詳しい情報を表示します。

bash
$ stat notes.md
File: notes.md
Size: 4312       Blocks: 16    IO Block: 4096   regular file
Access: (0644/-rw-r--r--)  Uid: ( 1000/ alice)   Gid: ( 1000/ alice)
Modify: 2026-09-25 09:10:12.000000000 +0900
$ stat -c '%a %U %s %n' *.sh     # 書式を指定(権限の数字・所有者・サイズ・名前)

fileファイルの種類を判定する

拡張子ではなく中身から判定します。

bash
$ file photo.jpg
photo.jpg: JPEG image data, JFIF standard 1.01, ...
$ file -i data.bin               # MIMEタイプで表示
$ file *                         # まとめて判定

duディレクトリの使用量

フォルダがどれだけの容量を使っているかを表示します。容量を食っているものを探すのに使います。

オプション意味
-hK・M・G で表示
-s合計だけ表示
-d N / --max-depth=NN階層まで表示
-aファイルも表示
-x別のファイルシステムはたどらない
bash
$ du -sh ~/project               # 合計だけ
$ du -h -d1 . | sort -h          # 直下のディレクトリを小さい順に
$ du -ah . | sort -rh | head -20 # 大きいもの上位20

dfディスクの空き容量

ディスクの空き容量を表示します。

bash
$ df -h                  # 全体
$ df -h /                # ルートのあるディスクだけ
$ df -hT                 # ファイルシステムの種類も表示
$ df -i                  # 空きinode数(ファイル数の上限)

wc行数・単語数・バイト数を数える

ファイルの行数・単語数・文字数(バイト数)を数えます。

bash
$ wc -l access.log            # 行数
$ wc -c file.bin              # バイト数
$ wc -m note.txt              # 文字数(日本語も1文字として数える)
$ ls | wc -l                  # ファイルの数
$ git ls-files '*.go' | xargs wc -l | tail -1   # Goのコードの総行数

realpath絶対パスにする

ファイルの場所を絶対パス(フルパス)で表示します。

bash
$ realpath ../notes.md
/home/alice/notes.md
$ realpath --relative-to=/home/alice /home/alice/project/web
project/web

basename / dirnameパスを分解する

パスからファイル名だけ、またはフォルダの部分だけを取り出します。

bash
$ basename /var/log/nginx/access.log
access.log
$ basename /path/photo.jpg .jpg      # 拡張子も外す
photo
$ dirname /var/log/nginx/access.log
/var/log/nginx

md5sum / sha256sumハッシュ値を計算する

ファイルのハッシュ値を計算します。ダウンロードしたファイルが壊れていないかの確認などに使います。

bash
$ sha256sum ubuntu.iso
$ sha256sum -c SHA256SUMS             # 一覧と照合する
$ md5sum *.jpg | sort | uniq -w32 -D  # 中身が同じファイルを探す

truncateファイルのサイズを変える

ファイルのサイズを変えます。ログを空にするのにも使えます。

bash
$ truncate -s 0 app.log           # 中身を空にする(ファイルは残す)
$ truncate -s 1G test.img         # 1GBの空ファイルを作る