Ho riscontrato questo problema su una scatola di FreeBSD oggi. Il problema era che si trattava di un artefatto di vi
(non vim
, non sono sicuro se vim
avrebbe creato questo problema). Il file stava consumando spazio ma non era stato completamente scritto su disco.
Puoi verificarlo con:
$ fstat -f /path/to/mount/point |sort -nk8 |tail
Questo esamina tutti i file e gli ordinamenti aperti (numericamente tramite -n
) dall'ottava colonna (chiave, -k8
), mostrando gli ultimi dieci elementi.
Nel mio caso, la voce (più grande) finale sembrava così:
bob vi 12345 4 /var 97267 -rwx------ 1569454080 rw
Ciò significava che il processo (PID) 12345 consumava 1,46 G (l'ottava colonna divisa per 1024³) di disco nonostante la mancanza di notarlo du
. vi
è orribile a visualizzare file di dimensioni estremamente grandi; anche 100 MB sono grandi per questo. 1,5 G (o per quanto grande fosse quel file in realtà) è ridicolo.
La soluzione era sudo kill -HUP 12345
(se non avesse funzionato, l'avrei fatto sudo kill 12345
e se anche quello non avesse funzionato , il temuto kill -9
sarebbe entrato in gioco).
Evita gli editor di testo su file di grandi dimensioni. Soluzioni alternative di esempio per una rapida scrematura:
Supponendo lunghezze di linea ragionevoli:
{ 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 -
Supponendo che le righe siano irragionevolmente grandi:
{ head -c8000 big.log; tail -c8000 big.log } |vim -R -
Questi usano vim -R
al posto di view
perché vim
è quasi sempre meglio ... quando è installato. Sentiti libero di convogliarli view
o vi -R
invece.
Se stai aprendo un file così grande per modificarlo effettivamente, considera sed
o awk
o qualche altro approccio programmatico.