Удаление начального 10 МБ из открытого файла

У меня есть файл журнала размером около 100 МБ, который открывается какой-то программой, и ведение журнала постоянно продолжается в этом файле. Я хочу удалить первые 10 МБ из этого файла. Есть ли способ сделать это, не влияя на процесс ведения журнала в этот файл.

  • Печать отсутствующих файлов из кортежа
  • Восстановление свободного пространства после обнуления диска с помощью sfill?
  • Создайте пять копий файла с тем же номером inode
  • Регистрация новых файлов в каталоге
  • восстановить удаленный файл на ext4 с помощью extundelete
  • Как известны типы файлов, если не из суффикса файла?
  • Как я рекурсивно устанавливаю атрибут, созданный датой, для атрибута с измененной датой в NTFS-3G?
  • Как добавить текст в файл с защитой от записи
  • 3 Solutions collect form web for “Удаление начального 10 МБ из открытого файла”

    Чтобы пропустить первые 10 МБ, вы можете использовать dd следующим образом:

     dd if=ORIGINAL_FILE of=10MB_LESS_FILE bs=512 skip=14880 

    Это скопирует исходный файл в 10MB_LESS_FILE .

    Невозможно удалить данные с начала файла на месте. Усеченный вызов может обрезать данные с конца, но нет эквивалента для отсечения пространства произвольно.

    Поэтому самое лучшее, что вы можете сделать, это скопировать файл, пропуская бит, который вы не хотите.

    Вы должны убедиться, что индексный дескриптор файла, открытый одним или несколькими процессами, не изменяется для продолжения входа в систему. Для этого выполните:

     cp mylog mylog.new < modify, trim or mangle `mylog.new` > cp mylog.new mylog 
    Linux и Unix - лучшая ОС в мире.