Я столкнулся с этой проблемой сегодня на коробке FreeBSD. Проблема заключалась в том, что это был артефакт vi(нет vim, не уверен, vimчто создаст эту проблему). Файл занимал место, но не был полностью записан на диск.
Вы можете проверить это с помощью:
$ fstat -f /path/to/mount/point |sort -nk8 |tail
Он просматривает все открытые файлы и сортирует (численно через -n) по 8-му столбцу (ключ, -k8), показывая последние десять элементов.
В моем случае последняя (самая большая) запись выглядела так:
bob vi 12345 4 /var 97267 -rwx------ 1569454080 rw
Это означало, что процесс (PID) 12345 потреблял 1,46 ГБ (восьмой столбец, разделенный на 1024 ³) диска, несмотря на его отсутствие du. viужасно при просмотре очень больших файлов; даже 100 МБ это большое для него. 1,5 ГБ (или как бы велик этот файл на самом деле) нелепо.
Решение было в 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или какой -либо другой программный подход.