GNU/Linux >> Linux の 問題 >  >> Linux

Linux ですべてのスパース ファイルを見つける方法

スパース ファイルは、ファイル システム全体を占有することなく、事前に割り当てられた大量の領域を持つファイルです。これらは、ループ ファイルシステムや仮想化ゲスト用の大きなディスク イメージの作成にかかる時間とディスク容量を削減するのに役立ちます。 「スパース ファイル」という用語は、「穴」を含むファイルを意味するために使用されます。ディスク使用量がそのサイズよりも少ないため、実行中のシステムで簡単に認識できます。この動作は /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
...


Linux
  1. ソフトウェアに関連するすべてのファイルを見つける方法は?

  2. Unix / Linuxで特定のユーザーが所有するすべてのファイルを見つける方法は?

  3. Linuxで.rbで終わるすべてのファイルを見つける方法は?

  1. Linuxで重複ファイルを見つける方法

  2. Linux で特定のテキストを含むすべてのファイルを見つけるにはどうすればよいですか?

  3. Linuxでパーティションのすべてのファイルを一覧表示する方法は?

  1. Linuxで1GBサイズを超えるすべてのファイルを見つける方法は?

  2. Linuxで777権限を持つすべてのファイル/フォルダを見つける方法は?

  3. Linux の find コマンドを使用してファイルを検索する方法