文章目录

  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 参考文献

1.命令简介

truncate 将文件的大小缩小或扩展到指定的大小。

如果指定的文件不存在将被创建。

如果文件大于指定的大小,则会丢失额外的数据。如果较短,它将被扩展,扩展的稀疏部分(空洞)读取时为零字节。

注意,文件空洞部分不占用磁盘空间,文件所占用的磁盘空间仍然是连续的。

2.命令格式

truncate <OPTION>... <FILE>...

3.选项说明

-c, --no-create不创建任何文件。
-o, --io-blocks将 SIZE 视为 IO 块数而不是字节数。Linux 文件系统的 IO 块大小通过为 4096 字节。
-r, --reference=<RFILE>以 RFILE 为基础尺寸。
-s, --size=<SIZE>设置或调整文件大小为指定字节。
--help显示帮助信息并退出。
--version显示版本信息并退出。

其中 SIZE 参数是一个整数和可选单位,如 10K(10*1024)。单位 K、M、G、T、P、E、Z、Y 都是 1024 的幂。KB,MB,… 为 1000 的幂。 也可以使用二进制前缀:KiB=K,MiB=M,以此类推。

SIZE 也可以添加前缀字符:‘+’ 扩展,‘-’ 减少,‘<’ 最多,‘>’ 至少,‘/’ 向下舍入为 SIZE 的倍数,‘%’ 向上舍入为 SIZE 的倍数。

4.常用示例

我们先创建一个内容为 “Hello World!” 的文件 foo.txt。

# echo 'Hello World!' > foo.txt && ls -l foo.txt
-rw-r--r-- 1 root root 13 Oct 22 21:43 foo.txt

(1)截断文件到指定字节。

比如将上面的 foo.txt 截断到 11 字节,即删除最后一个换行符和感叹符。

# truncate -s 11 foo.txt# cat foo.txt
Hello World

(2)填充文件到指定字节。

比如将上面的 foo.txt 填充到 4097 字节,然后再使用 du 查看磁盘占用空间大小。

# truncate -s 4097 foo.txt# du -h foo.txt
4.0K    foo.txt

可见,文件被填上空洞,实际上是不占用磁盘空间的。

至于为什么显示 4K,因为 Linux 文件系统存储最小单位为 block,不足 1 个 block 大小的文件也要占用 1 个 block 大小。这里的一个 block 一般等于 4096 字节。

我们可以通过 ls -l 来显示文件包含空洞的逻辑大小。

# ls -l foo.txt
-rw-r--r-- 1 root root 4097 Oct 22 21:59 foo.txt

参考文献

strace(1) - Linux manual page - man7.org

Linux 命令(147) —— truncate 命令相关推荐

  1. truncate命令简介

    一.truncate命令简介 truncate命令通常用于将文件缩小或扩展到指定的大小.如果文件大于指定的大小,则会丢失额外的数据.如果文件较短,则会对其进行扩展,并且扩展部分的读数为零字节. 二.t ...

  2. linux truncate 命令,如何在Linux中截断truncate文件

    在某些情况下,您可能希望将现有文件截断(空)为零长度.简单来说,截断文件意味着删除文件内容而不删除文件. 截断文件比删除文件,重新创建并设置正确的权限和所有权更快,更容易.另外,如果文件是由进程打开的 ...

  3. 【Linux】一步一步学Linux——systemctl命令(147)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 systemctl命令是系统服务管理器指令,它实际上将 s ...

  4. linux truncate 命令,truncate 命令使用

    今天使用truncate清空表时报错了: SQL> truncate table ref_set; truncate table ref_set ORA-02266: 表中的唯一/主键被启用的外 ...

  5. Linux操作系统基础知识命令参数详解

    Linux操作系统 RAID分组 RAID JBOD RAID JBOD的意思是Just a Bunch Of Disks,是将多块硬盘串联起来组成一个大的存储设备,从某种意义上说这种类型不被算作RA ...

  6. Linux系统使用ss命令查看端口状态

    Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 ...

  7. Linux小技巧scp命令

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  8. linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令

    一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚 ...

  9. truncate命令的使用

    概述         truncate命令常用语将文件缩小或扩展到指定的大小,如果制定大小小于文件原来的大小,则会丢失额外的数据.如果制定大小大于源文件大小则会扩展此文件 安装 系统一般会安装trun ...

最新文章

  1. 用基本控件简单地仿QQ登录界面
  2. Dialog的使用(三):progressDialog
  3. NYOJ 108 士兵杀敌(一)
  4. mongoose 笔记
  5. C++之STL之priority_queue
  6. 李宁是怎么输给安踏的?
  7. python爬取网页文字和图片_简单的爬虫:爬取网站内容正文与图片
  8. Docker 学习4 Docker容器虚拟化网络概述
  9. Effectively bypassing kptr_restrict on Android
  10. APP设计~切图那些事儿
  11. 惠普HP CM1312nfi彩色激光打印机硒鼓替代方案
  12. 使用腾讯云服务器搭建自己网站应该怎么做
  13. php网站后台密码忘记,phpweb忘记后台密码
  14. 【Alpha版本】冲刺阶段——Day 1
  15. Stimulsoft.Report的代码实现功能自学整理(二)
  16. iOS 图片涂鸦功能
  17. Halo 开源项目学习(一):项目启动
  18. IPMDA:week 1
  19. 估值“洼地” 煤炭板块再度崛起(附股)
  20. java作用域外调用对象,Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。 如果某个对象只在同一请求中共享,通过调用哪个类 的setAttribute方法设置属性。( )...

热门文章

  1. 计算机的分区原理,详解磁盘分区的基本原理
  2. 极客日报:小鹏汽车回应非法收集人脸数据被罚10万;OPPO发布首颗自研芯片马里亚纳X;AMD 3DNow指令集被Linux淘汰
  3. 如何选择真空机械制造 真空电极 真空穿通件 真空穿通密封件 真空腔 真空腔室 真空腔新材料 真空腔组件 超高压 超高真空材料 铝制CF组件
  4. 怎么使用树莓派总要了解一点它的软硬件吧。什么模块有什么用,需要什么准备才能安全的看到树莓派的开机界面
  5. 开关电源SW节点振荡,你真的了解吗?
  6. java 取名字_Java入门小知识
  7. 计算机运存多少ps,美工电脑一运行PS就卡,那到底该升级固态盘还是内存呢?...
  8. Android兼容之libc++_shared.so库冲突方案
  9. 网站SEO优化,网站外链建设需要注意的七大原则总结
  10. 装上KODI,再也不用买netflix会员了。而且,自由、自由、自由,什么都看得到。