2015-02-22 5 views
0

Есть ли способ удалить первые несколько байтов файла (обрезать его спереди) без использования таких программ, как tail или без чтения всего содержимого файла?Удаление первых байтов в файле

Это потому, что размер файла может составлять сотни МБ или даже ГБ, поэтому иметь дело с чтением и повторной записью содержимого файла было бы очень неэффективно.

То, что я ищу, возможно, является решением, которое позволяет мне компенсировать начало файла (в таблице размещения файлов), так что первые несколько байтов просто пропущены.

В Windows есть функция SetEndOfFile, которая позволяет мне обрезать файл, просто ограничивая конец файла, уменьшая размер файла.

Есть ли что-нибудь вроде функции StartOfFile, которая позволила бы мне сделать файл за несколько байтов после его текущей стартовой позиции?

Любое другое решение также приветствуется, если оно не требует чтения/перезаписи всего содержимого файла.

+0

Ask Google https://www.google.de/search?q=Is+there+a+way+to+remove+the+ first + few + bytes + of + a + file Например: 'dd' http://unix.stackexchange.com/a/6865 – makra

+0

В частности, о Windows: http://blogs.msdn.com/b/oldnewthing /archive/2010/12/01/10097859.aspx –

+0

Возможный дубликат [Можно ли удалять байты с начала файла?] (http://stackoverflow.com/questions/9598032/is-it-possible- к удаляемым байтам-из-б eginning-оф-а-файл) –

ответ

0

Это немного зависит от типа файловой системы, но в основном ответ - нет. Таблицы распределения файлов представляют собой указатели на определенные блоки или inodes - смежные фрагменты «файловых данных».

Они поддерживают сокращенно - технически вы читаете весь блок, но затем останавливаетесь, когда вы нажимаете маркер «конца файла». Но нет никакого механизма для «пропустить-до». Чтобы удалить первые несколько байтов, вы можете либо перезаписать их, либо переписать и переустановить весь файл.

Нечто вроде dd может сделать это довольно эффективно.

Эти ссылки могут быть актуальны:

https://unix.stackexchange.com/questions/13907/delete-the-first-n-bytes-of-files Remove number of bytes from beginning of file

Смежные вопросы