È 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 № 1Sì, 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)