0

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

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

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

在 Windows 上有一个SetEndOfFile功能,它允许我通过限制文件结尾来截断文件,从而减小文件大小。

有什么类似的StartOfFile函数可以让我使文件在其当前开始位置之后几个字节开始?

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

4

1 回答 1

0

这在一定程度上取决于文件系统类型,但大多数情况下答案是否定的。文件分配表是指向特定块或索引节点的指针——“文件数据”的连续块。

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

像这样的东西dd可以相当有效地做到这一点。

这些链接可能是相关的:

https://unix.stackexchange.com/questions/13907/delete-the-first-n-bytes-of-files 从文件开头删除字节数

于 2015-02-22T00:39:08.060 回答