LoginSignup
6

More than 5 years have passed since last update.

posted at

rmでファイルを削除してもディスク使用量が減らなかった

結論

削除対象ファイルを開いているプロセスがあるから

詳細

今回起きたこと

ログファイルが肥大し、ディスク使用量を圧迫していたので

$ rm log.text

でログファイルを削除した。
しかしその後ディスク使用量を確認しても、

$ df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/sda1              20G  20G   0G   100% /

となり、ディスク使用量が減らない。

rmの挙動について

Man page of RM
の通り、rmはFILEを削除(unlink)する。

unlinkは
Man page of UNLINK
の通り、

名前を削除し、場合によってはそれが参照しているファイルも削除する

という挙動になっている。この「場合によっては」の「場合」とは、

もしその名前がファイルへの最後のリンク (link) であり、 どのプロセスもそのファイルをオープン (open) していなければ

ということである。つまり、rmしたファイルのリンクが別に存在しているか、プロセスがファイルをオープンしている場合はrmしてもファイルが削除されない。
今回は、プロセスを確認したところ

$ lsof | grep log.txt
hoge      1234    fuga    8w      REG       202,1 270048415   9765625 /home/fuga/log.txt (deleted)

とプロセスが削除したファイルを掴んでいることを確認できたので、
該当プロセスをkillしたところ

$ df -h
Filesystem            Size  Used Avail Use% マウント位置
/dev/sda1              10G  10G   10G   50% /

とディスク使用量が減った。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6