删除文件中的第一个字节

时间:2015-02-22 00:32:19

标签: file file-manipulation

有没有办法删除文件的前几个字节(从前面截断)而不使用tail之类的程序或者不必读取文件的全部内容?

这是因为文件大小可能是几百MB甚至是GB,因此处理读取和重写文件内容将非常有效。

我正在寻找的可能是一种解决方案,它允许我偏移文件的开头(在文件分配表中),以便跳过前几个字节。

在Windows上有一个SetEndOfFile函数,它允许我简单地通过限制文件的结尾来截断文件,从而减小文件大小。

是否有类似StartOfFile函数可以让文件在当前开始位置之后开始几个字节?

任何其他解决方案也是受欢迎的,只要它不需要读取/重写文件的全部内容。

1 个答案:

答案 0 :(得分:0)

这取决于文件系统类型,但大多数答案都是否定的。文件分配表是指向特定块或inode的指针 - “文件数据”的连续块。

它们支持被缩短 - 从技术上讲,你读取整个块,但是当你点击“文件结束”标记时停止。但实际上并没有“跳过”的机制。要删除前几个字节,您可以覆盖它们,或者必须重写并重新对齐整个文件。

dd之类的东西可以相当有效地完成这项工作。

这些链接可能相关:

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