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

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

  • Какой самый быстрый способ удалить все файлы и подпапки в каталоге?
  • Альтернативное решение для создания нескольких копий одного файла с помощью командной строки?
  • Безопасно ли перемещать файл, к которому добавляется?
  • grep файл из файла
  • Файлы труб, загруженные с помощью wget в функцию
  • Определение количества файлов и подкаталогов в Linux
  • Где хранится информация о жестких / непрямых ссылках?
  • Мониторинг файлов непрерывно с помощью lsof
  • Могу ли я узнать, какой ключ ssh использовался для доступа к учетной записи?
  • разрешение отклонено при выполнении двоичного кода
  • Как эффективно переименовать тысячи файлов?
  • Удаление файлов-призраков с символами, отличными от ASCII
  • 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 - лучшая ОС в мире.