スパース ファイルは、ファイル システム全体を占有することなく、事前に割り当てられた大量の領域を持つファイルです。これらは、ループ ファイルシステムや仮想化ゲスト用の大きなディスク イメージの作成にかかる時間とディスク容量を削減するのに役立ちます。 「スパース ファイル」という用語は、「穴」を含むファイルを意味するために使用されます。ディスク使用量がそのサイズよりも少ないため、実行中のシステムで簡単に認識できます。この動作は /var/log/lastlog で確認できます ファイル。
# ls -lh /var/log/lastlog -rw-r--r--. 1 root root 286K Dec 3 04:50 /var/log/lastlog # du -sh /var/log/lastlog 12K /var/log/lastlog
スパース ファイルの検索
上記のプロセスでシステム内のスパース ファイルを特定できますが、ファイル システムまたはディレクトリ内のすべてのスパース ファイルを見つけるのは、特にファイルが多い場合は面倒です。心配はいりません。find コマンドには、すべてのスパース ファイルを一度に見つけるのに役立つオプションがあります。以下の例を見てみましょう。
1. 「%S」で検索コマンドを使用します 」を使用して、各ファイルの疎性を見つけます。
# find /var/log -type f -printf "%S\t%p\n" # find /var/log -type f -printf "%S\t%p\n" 1 /var/log/tallylog 1.00095 /var/log/audit/audit.log.1 0.0419982 /var/log/lastlog ....
2. 一番左の列に表示される値は (BLOCK-SIZE*st_blocks / st_size) ) スパース ファイルの場合、通常は 1.0 未満です。
3. システム上のすべてのスパース ファイルを検索する場合は、左端の列の値が 1 未満のすべてのファイルを除外できます。
# find / -type f -printf "%S\t%p\n" | gawk '$1 < 1.0 {print}' 0.0139994 /var/log/lastlog 0.959592 /usr/lib/locale/locale-archive ...