Dzisiaj napotkałem ten problem na urządzeniu FreeBSD. Problem polegał na tym, że był to artefakt vi(nie vim, nie jestem pewien, czy vimstworzy ten problem). Plik zajmował miejsce, ale nie został w pełni zapisany na dysku.
Możesz to sprawdzić za pomocą:
$ fstat -f /path/to/mount/point |sort -nk8 |tail
Spogląda na wszystkie otwarte pliki i sortuje (numerycznie przez -n) według 8. kolumny (klucz, -k8), pokazując dziesięć ostatnich pozycji.
W moim przypadku ostatni (największy) wpis wyglądał tak:
bob vi 12345 4 /var 97267 -rwx------ 1569454080 rw
Oznaczało to, że proces (PID) 12345 zużywał 1,46G (ósma kolumna podzielona przez 1024³) dysku pomimo braku jego duzauważenia. vijest okropny podczas oglądania bardzo dużych plików; nawet 100 MB jest na to duży. 1,5 G (lub jak duży był ten plik) jest niedorzeczne.
Rozwiązaniem było sudo kill -HUP 12345(jeśli to nie zadziała, ja sudo kill 12345i jeśli to też się nie powiedzie, to przerażające kill -9wejdą do gry).
Unikaj edytorów tekstu na dużych plikach. Przykładowe obejścia dla szybkiego przeglądania:
Zakładając rozsądne długości linii:
{ 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 -
Zakładając nieuzasadnione duże linie:
{ head -c8000 big.log; tail -c8000 big.log } |vim -R -
Są użycie vim -Rzamiast viewpoznieważ vimjest prawie zawsze lepiej ... gdy jest zainstalowany. Zapraszam do włożenia ich do viewlub vi -Rzamiast.
Jeśli otwierasz tak duży plik, aby go faktycznie edytować, rozważ sedlub awkinne podejście programowe.