ファイルサイズ確認時の疑問
実務上で、ファイルのサイズを確認する際にlsコマンド or duコマンド
を使用する事があります。
どちらのコマンドもよく使うコマンドなんですが、サイズの表記が違います。
例えば、ls -lコマンド
はバイトで結果が出力されますが、duコマンド
ではブロックサイズで結果が出力されます。
※ls -sコマンド
でブロックサイズ。du -bコマンド
でバイトの結果を得る事も可能です。
当方の環境では、ブロックサイズは4096で設定されていました。
読み書きがあった場合は、上記で指定したブロックサイズの値分は領域が確保されます。
例えば、ファイルのサイズが1バイトである場合に、ls -lコマンド
を叩いた場合は1バイトと出力されますが、、duコマンド
を叩いた場合は4(4096バイト)と出力されます。
[root@localhost log]# xfs_info /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=406016 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=1624064, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
当方は、「ファイルサイズを取得してこい」と言われた場合はバイトで取得したデータでお伝えするような文化で育ってきました。
余り深くは考えていなかったのですが、ファイルを別環境に転送する等を考えた場合はこれでよいのかな?と思っています。環境によって、ブロックサイズの設定が違う可能性がある事を懸念しています。
ただ、ディスクの使用量という観点ではブロックサイズでお伝えするのが正しいと考えています。
他の現場であれば、どのようにファイルのサイズを調べているのか、、気になるところです。
一応検証で使ったコマンドを載せておこうと思います。
検証で使ったコマンド
[root@localhost ~]# cd /var/log
[root@localhost log]# ll | grep "^d"
drwxr-xr-x. 2 root root 204 6月 29 21:57 anaconda
drwx------. 2 root root 23 6月 29 21:57 audit
drwxr-xr-x. 2 chrony chrony 6 8月 8 2019 chrony
drwxr-xr-x. 2 root root 6 6月 29 21:57 rhsm
drwxr-xr-x. 2 root root 23 6月 29 21:57 tuned
[root@localhost log]# ll -a anaconda/ | awk '{print $5,$9}'
204 .
4096 ..
23350 X.log
21764 anaconda.log
2141 ifcfg.log
1288513 journal.log
0 ks-script-6X_JQs.log
0 ks-script-S7CoUF.log
114301 packaging.log
31865 program.log
89791 storage.log
135005 syslog
[root@localhost log]# du -ba anaconda/
21764 anaconda/anaconda.log
135005 anaconda/syslog
23350 anaconda/X.log
31865 anaconda/program.log
114301 anaconda/packaging.log
89791 anaconda/storage.log
2141 anaconda/ifcfg.log
0 anaconda/ks-script-6X_JQs.log
0 anaconda/ks-script-S7CoUF.log
1288513 anaconda/journal.log
1706934 anaconda/
[root@localhost log]# du -a anaconda/
24 anaconda/anaconda.log
132 anaconda/syslog
24 anaconda/X.log
32 anaconda/program.log
112 anaconda/packaging.log
88 anaconda/storage.log
4 anaconda/ifcfg.log
0 anaconda/ks-script-6X_JQs.log
0 anaconda/ks-script-S7CoUF.log
1260 anaconda/journal.log
1676 anaconda/
[root@localhost log]# ls -s anaconda/
合計 1676
24 X.log 4 ifcfg.log 0 ks-script-6X_JQs.log 112 packaging.log 88 storage.log
24 anaconda.log 1260 journal.log 0 ks-script-S7CoUF.log 32 program.log 132 syslog