今日、FreeBSDのボックスでこの問題に遭遇しました。問題は、それがvi(この問題を引き起こすvimかどうかわからない)のアーティファクトであったことでしたvim。ファイルはスペースを消費していましたが、ディスクに完全に書き込まれていませんでした。
以下で確認できます:
$ fstat -f /path/to/mount/point |sort -nk8 |tail
これは、開いているすべてのファイルを調べ-n、8番目の列(キー、-k8)で並べ替え(数値でを介して)、最後の10項目を表示します。
私の場合、最後の(最大の)エントリは次のようになりました。
bob vi 12345 4 /var 97267 -rwx------ 1569454080 rw
これは、プロセス(PID)12345がdu気づいていないにもかかわらず、1.46G(8列目を1024³で割った値)のディスクを消費していたことを意味していました。 vi非常に大きなファイルを表示するのは恐ろしいです。100MBでも大きいです。1.5G(または実際にそのファイルがどれだけ大きいか)はばかげています。
解決策はそれでしたsudo kill -HUP 12345(それがうまくいかなかった場合、私はそうsudo kill 12345し、それも失敗した場合、恐ろしいものkill -9が出てくるでしょう)。
大きなファイルにはテキストエディターを使用しないでください。迅速なスキミングの回避策の例:
合理的なライン長を想定:
{ head -n1000 big.log; tail -n1000 big.log } |vim -R -
wc -l big.log |awk -v n=2000 'NR==FNR{L=$1;next}FNR%int(L/n)==1' - big.log |vim -R -
不当に大きな線を想定:
{ head -c8000 big.log; tail -c8000 big.log } |vim -R -
これらの使用vim -Rの代わりに、view理由はvimそれがインストールされていますとき...ほとんど常により良いです。パイプを代わりに、viewまたはvi -R代わりにパイプしてください。
あなたが実際にそれを編集するには、このような大きなファイルを開いている場合は、考えるsedか、awkまたはいくつかの他のプログラム的なアプローチ。