Es posible que desee utilizar el comando truncar:
truncate --size=1G test.txt
El TAMAÑO se puede especificar como bytes, KB, K, MB, M, etc. Supongo que puede calcular el tamaño deseado a mano; si no, probablemente podría usar el comando stat para obtener información sobre el tamaño actual del archivo.
perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);'
abre el archivo para lectura. Sin embargo, para truncar el archivo, debe modificarlo, por lo que un controlador de archivo de solo lectura no funcionará. Necesitas usar el modo "modificar" ("+>"
).
Como problema secundario, siempre me sorprende cuando las personas dejan que las llamadas al sistema fallen en silencio y luego preguntan qué salió mal. Un esencial parte de diagnosticar un problema es mirar el mensaje de error producido; incluso si no lo entiendes, hace la vida mucho más fácil para aquellos a quienes pides ayuda.
Lo siguiente hubiera sido algo más útil:
perl -we 'open(FILE, "<", "./test.txt") or die "open: $!";
truncate(FILE, 8) or die "truncate: $!";
close(FILE);'
aunque es cierto que eso solo habría informado de "argumento no válido". Aún así, esa es información útil y bien podría haberlo llevado a la conclusión de que el modo abierto estaba mal (como me pasó a mí).
Puedes usar tail
para cortar los últimos 1000 bytes, ejemplo:
cola -c 1000 archivo> archivo2
la -c genera los 1000 bytes finales del archivo, para más opciones:
cola de hombre
Para reemplazar el archivo original con el archivo que acaba de generar:
archivo mv archivo2