linux之truncate命令、split命令用法及说明

 更新时间:2026年05月11日 09:02:09   作者:叮当~~~  
本文介绍了Linux中的truncate和split命令,truncate命令用于将文件大小缩小或扩展到指定大小,可用于清除日志文件等;split命令用于将大文件拆分成多个小文件,可按行数、字节大小或循环分布等方式切割文件

功能描述

truncate命令:

  • Linux truncate命令通常用于将每个文件的大小缩小或扩展到指定的大小。文件的最终大小取决于初始大小。
  • 如果文件(例如存档文件或日志文件)大于指定的大小,则会丢失额外的数据,但如果文件较短,则会对其进行扩展,扩展部分为零字节。

split命令:

  • split命令是Linux系统中的一个用于拆分文件的命令。
  • 它可以将一个大文件拆分成多个小文件,以便于传输、存储或处理。

truncate命令

大多数Linux发行版附带truncate命令。如果您的系统没有truncate命令,

对于CentOS 7:

# yum provides truncate
coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : base
Matched from:
Filename : /usr/bin/truncate

如果未安装,请使用:

# yum-y install coreutils

truncate命令选项

用法:truncate 选项... 文件...

  -c, --no-create    不创建文件
  -o, --io-blocks    将SIZE 视为IO 块数而不使用字节数
  -r, --reference=RFILE  base size on RFILE
  -s, --size=SIZE        set or adjust the file size by SIZE bytes
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

使用truncate时,SIZE参数必须是整数和可选单位(例如:10K是10*1024)。使用的单位是K、M、G、T、P、E、Z、Y(1024的幂)或KB、MB、…(1000的幂)。

SIZE参数的前缀也可以是以下修改字符之一:“+”扩展“,-”减少“,”<”最多“,>”至少“/”向下舍入到“%”的倍数,“%”向上舍入到“%”的倍数。

truncate用法示例

1.这非常有用,例如用于清除日志文件。

这比手动删除文件并创建新文件要好。

截断过程基本上删除了文件的所有内容。它不会删除文件本身,但会将其作为零字节文件留在磁盘上。

# truncate -s 0 file

2.特定大小

# truncate -s 100k file

3.假设您有一个500K文件,并希望将其缩小到250K。您将使用-s选项并指定-in大小

truncate -s -250K file.txt

split命令

split命令选项

用法:split [选项]... [输入 [前缀]]

-a, --suffix-length=N : 指定输出文件名的后缀长度(默认为2个:aa,ab...)
-d, --numeric-suffixes[=FROM] : 指定输出文件名的后缀用数字代替
-l, --lines=NUMBER: 行数分割模式(指定每多少行切成一个小文件;默认行数是1000行)
-b,--bytes=SIZE : 二进制分割模式(支持单位:k/m) 
-C, --line-bytes=SIZE: 文件大小分割模式(切割时尽量维持每行的完整性)
  -e, --elide-empty-files:不产生空的输出文件  
      --filter=COMMAND:写入到shell命令行    
  -n, --number=CHUNKS:产生chunks文件
  -u, --unbuffered    无需缓存
       --verbose        在每个输出文件打开前输出文件特征
       --help              显示此帮助信息并退出
       --version         显示版本信息并退出

CHUNKS可能是:

  • 根据输入大小将N个文件拆分为N个文件
  • K/N输出第Kth个N到stdout
  • l/N拆分为N个文件而不拆分行
  • l/K/N将N的Kth输出到stdout而不拆分行
  • r/N类似于“l”,但使用循环分布
  • r/K/N类似,但仅将N的Kth输出到stdout
  • split [-a] [-d] [-l <行数>] [-b <字节>] [-C <字节>] [要切割的文件] [输出文件名]

split用法示例

1.行切割文件

$ split -l 300000 users.sql  /data/users_

2.使用数字后缀

$ split -d -l 300000 users.sql  /data/users_

3.按字节大小分割

$ split -d -b 100m users.sql  /data/users_

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux共享上网设置实例详解

    linux共享上网设置实例详解

    这篇文章主要介绍了linux共享上网设置实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • 详解Xampp和wordpress在Centos7上的搭建与使用

    详解Xampp和wordpress在Centos7上的搭建与使用

    通过实例给大家详细分析了Xampp和wordpress在Centos7上的搭建与使用,对此有需要的朋友可以学习下。
    2018-02-02
  • Ubuntu系统下用Crontab命令定时执行PHP文件详解

    Ubuntu系统下用Crontab命令定时执行PHP文件详解

    这篇文章主要给大家介绍了在Ubuntu系统下用Crontab命令定时执行PHP文件的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061)

    Ubuntu 16.04安装MySQL及需要其他主机远程连接MySQL时的设置问题。在安装过程中会出现各种奇葩问题,下面小编给大家带来了Ubuntu Server 16.04安装MySQL设置远程访问出现问题的完美解决方案(error:10061),一起看看吧
    2016-10-10
  • 在Linux环境下安装Kafka

    在Linux环境下安装Kafka

    本文以安装Kafka的步骤做了图文详细介绍,Kafka是一种高吞吐量 的分布式发布订阅消息系统,对Kagka感兴趣的小伙伴可以参考参考本篇文章
    2021-08-08
  • Linux中进程和线程的对比与区别

    Linux中进程和线程的对比与区别

    这篇文章主要介绍了Linux中进程和线程的对比与区别的相关资料,需要的朋友可以参考下
    2017-07-07
  • Linux网络配置与端口监听的实战指南

    Linux网络配置与端口监听的实战指南

    做开发和运维的同学,几乎每天都会和网络打交道:部署服务后端口不通、服务器IP配置异常、接口调用失败、防火墙拦截请求,所以本文汇总了IP查看、DNS配置、端口监听、连通性测试、防火墙放行的实操技巧,需要的朋友可以参考下
    2026-02-02
  • 使用Apache Spark处理Excel文件的方法

    使用Apache Spark处理Excel文件的方法

    Excel作为功能强大的数据处理软件,广泛应用于各行各业,从企业管理到数据分析,可谓无处不在,本文介绍使用Apache Spark处理Excel文件的简易指南,感兴趣的朋友一起看看吧
    2024-01-01
  • linux杀进程的多种方法

    linux杀进程的多种方法

    这篇文章主要介绍了linux杀进程的多种方法,需要的朋友可以参考下
    2014-03-03
  • linux利用read命令获取变量中的值

    linux利用read命令获取变量中的值

    对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解,下面这篇文章主要给大家介绍了关于linux如何利用read命令来获取变量中值的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08

最新评论