Para pular os primeiros 10 MB, você pode usar dd
assim:
dd if=ORIGINAL_FILE of=10MB_LESS_FILE bs=512 skip=14880
Isso copiará o arquivo original para 10MB_LESS_FILE
.
Eu tenho um arquivo de log de tamanho de quase 100 MB que é aberto por algum programa e o registro está continuamente acontecendo nesse arquivo. Eu quero excluir os primeiros 10 MB desse arquivo. Existe alguma maneira de fazer isso sem afetar o processo de registro no arquivo.
Não há como excluir dados do início de um arquivo in situ. A chamada truncada pode cortar dados do final, mas não há equivalente para aparar o espaço arbitrariamente.
Portanto, o melhor que você pode fazer é copiar o arquivo pulando os bits que você não deseja.
Você precisa certificar-se de que o inode do arquivo aberto por um ou mais processos não seja alterado para continuar registrando-se nele. Para fazer isso, faça:
cp mylog mylog.new
< modify, trim or mangle 'mylog.new' >
cp mylog.new mylog