/ / shrink (truncate) file from start on linux - file, truncate, shrink

riduci (tronca) il file dall'inizio su linux - file, troncato, riduci

È possibile in Linux (e / o su altri Unix)"rimpicciolire" il file dall'inizio? Mi piacerebbe usarlo per la coda persistente (nessuna implementazione esistente soddisfa le mie esigenze). Dalla fine del file immagino che sia possibile con truncate ().

risposte:

-2 per risposta № 1

Sì, puoi usare cut o tail per rimuovere parti di un file.

cut -b 17- input_file
tail -c +17 input_file

Questo produrrà il contenuto di input_file a partire dal 17 ° byte, rimuovendo efficacemente i primi 16 byte del file. Nota che il cut esempio aggiungerà anche una nuova riga all'output.


-5 per risposta № 2

Ho un file troncato dato come argomento a 64000000 byte utilizzando il seguente script Python:

#!/usr/bin/env python

import sys
import os

file = sys.argv[1]
f = os.open(file, os.O_RDWR)
os.ftruncate(f, 64000000)
os.close(f)