ディレクトリー内にあるファイルをサイズとタイムスタンプを一覧に出す方法です。
適当なファイル作成
動作確認用に適当なファイルをランダムなサイズで用意します。
$ for i in {01..09}; do dd if=/dev/urandom of=/work/file${i} bs=1M count=$((RANDOM % 50 + 1)) status=none; done
$ ls -l /work/file??
-rw-r--r--. 1 takam takam 49283072 Jul 18 17:01 /work/file01
-rw-r--r--. 1 takam takam 51380224 Jul 18 17:01 /work/file02
-rw-r--r--. 1 takam takam 52428800 Jul 18 17:01 /work/file03
-rw-r--r--. 1 takam takam 11534336 Jul 18 17:01 /work/file04
-rw-r--r--. 1 takam takam 38797312 Jul 18 17:01 /work/file05
-rw-r--r--. 1 takam takam 1048576 Jul 18 17:01 /work/file06
-rw-r--r--. 1 takam takam 38797312 Jul 18 17:01 /work/file07
-rw-r--r--. 1 takam takam 15728640 Jul 18 17:01 /work/file08
-rw-r--r--. 1 takam takam 30408704 Jul 18 17:01 /work/file09
count=$((RANDOM % 50 + 1))の説明
countは、ddコマンドのオプションで、書き込むブロック数を指定します。
ここでは、$((RANDOM % 50 + 1))により、Bashの組み込み変数「RANDOM」を使って1~50のランダムな整数を生成し、その値をcountに設定しています。
| 項目 | 説明 |
|---|---|
count= | ddコマンドのオプション。書き込むブロック数を指定する。 |
$((...)) | シェルの算術展開。括弧内の計算結果をcountに設定する。 |
RANDOM | Bashの組み込み変数。0~32767のランダムな整数を返す。 |
RANDOM % 50 | 50で割った余りを求め、0~49の値にする。 |
+ 1 | 1を加えて、1~50の範囲にする。 |
RANDOM = 12345 ・・・ 組み込み変数RANDOMの値が「12345」
12345 % 50 = 45 ・・・ 「12345」を「50」で割ると余りが「45」
45 + 1 = 46 ・・・ 「45」に「1」を足して「46」※ count=0になるのを防ぐため
count=46 ・・・ ddコマンドのブロック数は「46」
ファイルのみでサイズとタイムスタンプを表示
$ find /work -type f -exec du -b --time {} + | column -t ・・・ 列を揃えて表示
49283072 2026-07-18 17:01 /work/file01
51380224 2026-07-18 17:01 /work/file02
52428800 2026-07-18 17:01 /work/file03
11534336 2026-07-18 17:01 /work/file04
38797312 2026-07-18 17:01 /work/file05
1048576 2026-07-18 17:01 /work/file06
38797312 2026-07-18 17:01 /work/file07
15728640 2026-07-18 17:01 /work/file08
30408704 2026-07-18 17:01 /work/file09
$ find /work -type f -exec du -b --time {} + | awk '{printf "%15d %s %s %s\n", $1, $2, $3, $4}' ・・・ サイズを右揃え
49283072 2026-07-18 17:01 /work/file01
51380224 2026-07-18 17:01 /work/file02
52428800 2026-07-18 17:01 /work/file03
11534336 2026-07-18 17:01 /work/file04
38797312 2026-07-18 17:01 /work/file05
1048576 2026-07-18 17:01 /work/file06
38797312 2026-07-18 17:01 /work/file07
15728640 2026-07-18 17:01 /work/file08
30408704 2026-07-18 17:01 /work/file09
$ find /work -type f -exec du -b --time {} + | awk '{printf "%9d %s %s %s\n", $1, $2, $3, $4}' | sort -r | head -5
52428800 2026-07-18 17:01 /work/file03
51380224 2026-07-18 17:01 /work/file02
49283072 2026-07-18 17:01 /work/file01
38797312 2026-07-18 17:01 /work/file07
38797312 2026-07-18 17:01 /work/file05
サブディレクトリーの階層の深さを指定するには「-maxdepth」を使います。
$ find /work -type f -exec du -b --time {} + | awk '{printf "%9d %s %s %s\n", $1, $2, $3, $4}'
49283072 2026-07-18 17:01 /work/file01
51380224 2026-07-18 17:01 /work/file02
52428800 2026-07-18 17:01 /work/file03
11534336 2026-07-18 17:01 /work/file04
38797312 2026-07-18 17:01 /work/file05
1048576 2026-07-18 17:01 /work/file06
38797312 2026-07-18 17:01 /work/file07
15728640 2026-07-18 17:01 /work/file08
30408704 2026-07-18 17:01 /work/file09
14680064 2026-07-18 21:08 /work/subdir1/file01
20971520 2026-07-18 21:08 /work/subdir1/file02
1048576 2026-07-18 21:08 /work/subdir1/file03
46137344 2026-07-18 21:08 /work/subdir1/file04
37748736 2026-07-18 21:08 /work/subdir1/file05
32505856 2026-07-18 21:08 /work/subdir1/file06
4194304 2026-07-18 21:08 /work/subdir1/file07
15728640 2026-07-18 21:08 /work/subdir1/file08
27262976 2026-07-18 21:08 /work/subdir1/file09
26214400 2026-07-18 21:11 /work/subdir1/subdir2/file01
34603008 2026-07-18 21:11 /work/subdir1/subdir2/file02
3145728 2026-07-18 21:11 /work/subdir1/subdir2/file03
17825792 2026-07-18 21:11 /work/subdir1/subdir2/file04
51380224 2026-07-18 21:11 /work/subdir1/subdir2/file05
8388608 2026-07-18 21:11 /work/subdir1/subdir2/file06
46137344 2026-07-18 21:11 /work/subdir1/subdir2/file07
16777216 2026-07-18 21:11 /work/subdir1/subdir2/file08
16777216 2026-07-18 21:11 /work/subdir1/subdir2/file09
$ find /work -maxdepth 2 -type f -exec du -b --time {} + | awk '{printf "%9d %s %s %s\n", $1, $2, $3, $4}'
49283072 2026-07-18 17:01 /work/file01
51380224 2026-07-18 17:01 /work/file02
52428800 2026-07-18 17:01 /work/file03
11534336 2026-07-18 17:01 /work/file04
38797312 2026-07-18 17:01 /work/file05
1048576 2026-07-18 17:01 /work/file06
38797312 2026-07-18 17:01 /work/file07
15728640 2026-07-18 17:01 /work/file08
30408704 2026-07-18 17:01 /work/file09
14680064 2026-07-18 21:08 /work/subdir1/file01
20971520 2026-07-18 21:08 /work/subdir1/file02
1048576 2026-07-18 21:08 /work/subdir1/file03
46137344 2026-07-18 21:08 /work/subdir1/file04
37748736 2026-07-18 21:08 /work/subdir1/file05
32505856 2026-07-18 21:08 /work/subdir1/file06
4194304 2026-07-18 21:08 /work/subdir1/file07
15728640 2026-07-18 21:08 /work/subdir1/file08
27262976 2026-07-18 21:08 /work/subdir1/file09