“截断”中的“最多”修饰符是什么?

rub*_*o77 4 truncate

手册显示truncate我可以添加<“最多”。

这个是来做什么的?

这听起来像是我的默认设置。

roa*_*ima 10

让我们从两个文件开始,

  • 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 MiB ”。

  • 根据 FreeBSD 手册页存档中的一些旧手册页,看起来最初系统调用只是被截断,例如 [FreeBSD 2.0](https://man.freebsd.org/cgi/man.cgi?query=ftruncate&amp;apropos= 0&amp;sektion=0&amp;manpath=FreeBSD+2.0-RELEASE&amp;arch=default&amp;format=html) 手册页显示“截断至最多 _length_ 个字节”并且没有提及扩展。Debian 2.2.7 的 Linux 手册页表示,未指定是否扩展短文件。在某种程度上,这是有意义的,因为您始终可以使用常规写入来扩展文件,因此不需要单独的系统调用。 (4认同)
  • @Barmar,是的,当前的版本就是这样做的,甚至 POSIX 规范也这么说。但考虑到这个名称与扩展文件的操作并不完全匹配,我只是想知道它是否有历史背景。事实上,这个名字看起来更贴切。 (2认同)