答案1
让我们从两个文件开始,
1M.dat
- 1 MiB 数据(使用 生成truncate --size 1M 1M.dat
)10M.dat
- 10 MiB 数据(使用 生成truncate --size 10M 10M.dat
)
truncate --size 5M {file}
首先考虑应用于这两个文件的命令。尽管第二个文件将按预期被截断,但第一个文件将被截断增加大小以达到所需的 5 MiB 文件长度。
truncate --size '<5M' {file}
现在考虑应用于这两个文件的命令。第二个文件仍将按预期被截断,但第一个文件将保持不变,因为它的长度已小于 5 MiB。将命令读为“将文件截断为最多5 兆字节”。
答案2
如果文件较小,则不<
truncate
添加零字节到文件末尾,直到达到大小。
所以这个例子可能是大多数情况下你想要的:
truncate -s '<1M' filename
这将仅保留文件的前 1MB。
要仅保留文件的末尾,您可以使用tail
:
tail -n 1000 filename > tmpfile && mv tmpfile filename