Linux 命令(147) —— truncate 命令

article/2025/9/22 10:42:30

文章目录

  • 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


http://chatgpt.dhexx.cn/article/Im6nv3aV.shtml

相关文章

Public Key Infrastructure——公钥基础设施

今天做一篇关于PKI的笔记&#xff0c;PKI是目前来说信息安全领域很流行的技术&#xff0c;它的应用已经很广泛了。 PKI是指公钥基础设施&#xff0c;它是通过公钥加密技术和数字签名服务保证传输数据的安全。它最重要的几个部分是公钥加密算法&#xff0c;数字证书&#xff0c;…

检查安装包(grid infrastructure和Oracle database所需补丁)

检查安装包 根据文档说明&#xff0c;安装 Grid Infrastructure 和 Oracle Database 所需的补丁包有&#xff1a; binutils-2.15.92.0.2 compat-libcap1-1.10 compat-libstdc-33-3.2.3 elfutils-libelf-0.97 elfutils-libelf-devel-0.97 expat-1.95.7 gcc-3.4.6 gcc-c…

DAIR-V2X: A Large-Scale Dataset for Vehicle-Infrastructure Cooperative 3D Object Detection

VICAD系统开发挑战 &#xff1a;缺乏来自真实场景的VICAD数据集。 3 DAIR-V2X 数据集 DAIR-V2X 采集来自真实场景的大规模、多模态、多视图数据集&#xff0c;带有 3D 标签注释&#xff0c;用于车辆-路边设施协同感知。 针对车辆和路边设施传感器之间的时间异步问题&#xff…

ins40401 oracle,安装orace grid infrastructure 提示[INS-40404]问题

grid infrastructure 提示“[INS-40404] The installer has detected a configured instance of oracle grid infrastructure software on the server! 今天是2013-12-03,描述一下出现这个错误的过程,我没按照正常的方式删掉 grid infrastructure,而是直接删掉了安装目录,但…

A/B-Test (Overlapping Experiment Infrastructure: More, Better, Faster Experimenta)

本文针对上周的工作进行了总结&#xff0c;上上周的工作将在接下来通过文章进行总结&#xff0c;主要内容为DEIN 模型。 为了解决推荐算法基于web实验的模型验证&#xff0c;我参考了Overlapping Experiment Infrastructure: More, Better, Faster Experimentation 2010 的goo…

Infrastructure-Based Object Detection and Tracking for Cooperative Driving Automation: A Survey

由于基础设施的&#xff08;infrastructure-based&#xff09;传感器安装位置和姿势的灵活性&#xff0c;基于基础设施的目标检测和跟踪系统可以增强联网车辆的感知能力。 一、基于基础设施的感知系统 基于基础设施的目标感知系统包含四个典型阶段&#xff1a;1&#xff09;信…

公钥基础设施 (Public-key infrastructure PKI)

公钥基础设施 PKI 1.功能2.设计3.认证方法3.1证书机构&#xff08;CA&#xff09;3.2信任网络&#xff08;Wot&#xff09;3.3简单的公共关键基础设施&#xff08;SKPI&#xff09;3.4分散的PKI3.5基于区块链的 PKI 4.使用 密码学上&#xff0c;公开密钥基础建设借着数字证书认…

shell infrastructure host占用cpu_网速、CPU、内存监控软件TrafficMonitor

Traffic Monitor 是一款 Windows 平台的网速、CPU等监控悬浮窗软件,可以显示当前网速、CPU及内存占用率,小窗口可以拖动到窗口的任意位置,并且支持嵌入到任务栏显示,历史流量统计等功能。 Traffic Monitor 是免安装的,打开即用。下载地址:https://github.com/zhongyan…

Oracle 12cR1 Grid Infrastructure 安装指南之一(官方直译)

1 Oracle Grid Infrastructure安装清单 以下清单提供了所需的 Preinstallation 步骤的列表. 使用此清单可协调任务, 以帮助确保在启动Oracle Grid Infrastructure以进行群集安装之前完成所有系统和存储准备和配置任务. 1.1系统硬件, 软件和配置清单 本节包含以下服务器配置…

HLA RTI(Run-time Infrastructure)

RTI&#xff08;Run-time Infrastructure&#xff09; 概述 主要作用 具体实现了HLA接口规范。为了实现联邦内部各个联邦成员之间进行高效的信息交换&#xff0c;HLA接口规范用文字定义了各种标准服务和接口&#xff0c;而RTI则用程序设计语言将这些标准的服务和接口转成了标…

DDS之DCPS Infrastructure模块

DCPS Infrastructure Infrastructure ModuleEntityEntity IdentifierQoS policyListenerStatusStatusConditionEnabling Entities QosPolicyStatusStatus 定义StatusMask 定义Listener callback定义Listener callback的实现 Condition and WaitSet Infrastructure Module 从Inf…

Oracle 19.3 Grid Infrastructure 软件安装详细教程

更多文章&#xff0c;欢迎关注作者公众号&#xff0c;欢迎一起交流。 1 安装环境 CentOS 7.9Oracle Database 19.3 - Enterprise Edition 2 安装配置 2.1 内存要求 1&#xff09;数据库安装&#xff1a;至少1GB&#xff0c;推荐2G以上&#xff1b; 2&#xff09;Grid安装&…

Oracle 19c Grid Infrastructure安装

概述 本文描述在单个主机上&#xff08;不是RAC&#xff09;GI 19c的安装。 Oracle数据库软件19c已安装&#xff0c;但未创建任何数据库。参见这篇文章。 主机为Oracle Linux 7&#xff0c;主机上已安装先决条件包(oracle-database-preinstall-19c)&#xff0c;数据库软件用户…

infra-structure Ad Hoc

“infrastructure”模式&#xff1a; 所谓infrastructure是在一种整合有线与无线局域网架构的应用模式&#xff0c;与ad- hoc不同的是配备无线网卡的设备必须通过ap来进行无线通讯&#xff0c;设置后&#xff0c;无线网络设备就必须有AP&#xff08;Access Pointer&#xff09;…

DDD(八)【基础设施层】

最近被&#xff24;&#xff24;&#xff24;吸引了阿&#xff0c;在这里感谢一下小佟&#xff0c;呵呵&#xff0c;领域驱动设计是个不错的东西&#xff0c;帮助我们把问题清晰化&#xff0c;这候对于复杂业务逻辑是很重要的&#xff0c;今天这一讲主要说一下&#xff24;&…

DB2初步使用

DB2初步使用 1.安装完成后开始菜单栏里会有一个 DB2 Command Window - Administrator 打开这个命令窗口 2.db2  db2&#xff0c;启动 3.list databse directory 会列出所有数据库 create databse XXX  创建新的数据库XXX  drop database XXX  删除已有数据库XXX 4.conn…

db2 时间戳相减返回天数

db2时间戳类型时间相减返回天数&#xff0c;先用timestampdiff函数让时间戳相减得到秒&#xff0c;然后利用cast()函数转换成天数。timestampdiff()函数中的时间一定是时间戳timestamp类型。 select cast(timestampdiff(2,(CURRENT_TIMESTAMP - 2021-08-10 11:00:00)) as doub…

Linux 命令行进入DB2

1. docker ps 2.docker exec -it 813cb755c14c /bin/bash 3.su - db2inst1 进入DB2账户下 4.db2 list db directory 列出目前所有数据库 5. db2 直接进入db2数据库命令行模式 6.db2 connect to testdb&#xff08;testdb数据库名称&#xff09; 如果需要对某一个数据库操作…

DB2安装到卸载一套龙服务

DB2安装到卸载一套龙服务 1.DB2数据库下载 下载地址: 点击这里下载 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP 下载下来是 3 号 双击3解压 会有一个弹框&#xff0c;为四号 &#xff0c;点击Browse 这里选择解压地址&#xff0c;我是解压…