2025年Linux -- 大文件分割成多个小文件

Linux -- 大文件分割成多个小文件备份的大文件 因为大文件不方便传输 切割成多个小文件 实验 对 tar 命令打包的 1G 5G 的压缩文件 进行分割 分卷 成 3 5 个小文件 分析 1 得到 10 个 500M 的文本文件 打包成一个大的 tar 包文件 2

大家好,我是讯享网,很高兴认识大家。

备份的大文件,因为大文件不方便传输,切割成多个小文件。

实验:

    对tar命令打包的1G~5G的压缩文件,进行分割(分卷)成3~5个小文件

分析:

步骤:

    1.如何得到一个大文件?
     编写脚本来完成产生一个100万行的文本文件,产生5个这样的文件
     使用重定向快速生成更加大的文件
     >>
    2.实验tar命令打包
    3.实验split进行分割


第一步:编写脚本big_file.sh

[root@jack 8-21]# vim big_file.sh [root@jack 8-21]# cat big_file.sh  #!/bin/bash for i in {1..} do     echo "hello,world I am cali, we are learning linux tar split command how to write shell script" >>sc.txt done [root@jack 8-21]# bash big_file.sh  [root@jack 8-21]# ls  big_file.sh  sc.txt [root@jack 8-21]# du -sh sc.txt 16M    sc.txt

讯享网

第二步:使用重定向生成更加大的文件


讯享网

讯享网[root@jack 8-21]# cat sc.txt >sc1.txt [root@jack 8-21]# cat sc.txt >sc2.txt [root@jack 8-21]# ls big_file.sh  sc1.txt  sc2.txt  sc.txt [root@jack 8-21]# cat sc.txt >>sc3.txt [root@jack 8-21]# cat sc.txt >>sc3.txt [root@jack 8-21]# cat sc.txt >>sc3.txt [root@jack 8-21]# cat sc.txt >>sc3.txt [root@jack 8-21]# cat sc.txt >>sc3.txt [root@jack 8-21]# cat sc.txt >>sc3.txt [root@jack 8-21]# ls big_file.sh  sc1.txt  sc2.txt  sc3.txt  sc.txt [root@jack 8-21]# ll -h 总用量 90M -rw-r--r-- 1 root root  148 8月  21 10:19 big_file.sh -rw-r--r-- 1 root root 8.5M 8月  21 10:21 sc1.txt -rw-r--r-- 1 root root 8.5M 8月  21 10:21 sc2.txt -rw-r--r-- 1 root root  51M 8月  21 10:22 sc3.txt -rw-r--r-- 1 root root 8.5M 8月  21 10:20 sc.txt [root@jack 8-21]# cat sc3.txt >>sc4.txt [root@jack 8-21]# cat sc3.txt >>sc4.txt [root@jack 8-21]# cat sc3.txt >>sc4.txt [root@jack 8-21]# cat sc3.txt >>sc4.txt [root@jack 8-21]# ll -h 总用量 333M -rw-r--r-- 1 root root  148 8月  21 10:19 big_file.sh -rw-r--r-- 1 root root 8.5M 8月  21 10:21 sc1.txt -rw-r--r-- 1 root root 8.5M 8月  21 10:21 sc2.txt -rw-r--r-- 1 root root  51M 8月  21 10:22 sc3.txt -rw-r--r-- 1 root root 204M 8月  21 10:23 sc4.txt -rw-r--r-- 1 root root 8.5M 8月  21 10:20 sc.txt

第三步:把文件移动到一个文件夹里

[root@jack 8-21]# mkdir sc [root@jack 8-21]# ls big_file.sh  sc  sc1.txt  sc2.txt  sc3.txt  sc4.txt  sc.txt [root@jack 8-21]# mv sc* sc mv: 无法将目录'sc' 移动至自身的子目录'sc/sc' 下 [root@jack 8-21]# ls big_file.sh  sc

第四步:打包过程

讯享网[root@jack 8-21]# tar czf sc.tar.gz sc [root@jack 8-21]# ls big_file.sh  sc  sc.tar.gz [root@jack 8-21]# du -sh sc.tar.gz 976K    sc.tar.gz [root@jack 8-21]# du -sh sc 281M    sc

使用split进行分割

选项

    -b 指定分割文件大小
    -d 指定分割文件的后缀为数字
    -a 指定分割文件后缀的长度
    -C 指定每行最大的字节数
    -l 指定每个文件最大的行数

# 将sc.tar.gz文件按照100k为一个文件进行分割 [root@jack 8-21]# split -b 100k -d  -a 1 sc.tar.gz sc.tar.gz. [root@jack 8-21]# ls big_file.sh  sc.tar.gz.0  sc.tar.gz.3  sc.tar.gz.6  sc.tar.gz.9 sc            sc.tar.gz.1  sc.tar.gz.4  sc.tar.gz.7 sc.tar.gz     sc.tar.gz.2  sc.tar.gz.5  sc.tar.gz.8 [root@jack changsha]# tar tf sc.tar.gz.1 tar: 它似乎不像是一个 tar 归档文件 tar: 跳转到下一个头 tar: 由于前次错误,将以上次的错误状态退出 # 分割后的10个文件 [root@jack 8-21]# mkdir changsha [root@jack 8-21]# cd changsha [root@jack changsha]# ls sc.tar.gz.0  sc.tar.gz.2  sc.tar.gz.4  sc.tar.gz.6  sc.tar.gz.8 sc.tar.gz.1  sc.tar.gz.3  sc.tar.gz.5  sc.tar.gz.7  sc.tar.gz.9 # 还原 [root@jack changsha]# cat sc.tar.gz.* |tar xz # 使用cat的命令拼接多个分割好的文件通过管道给tar命令解压 [root@jack changsha]# ls sc           sc.tar.gz.1  sc.tar.gz.3  sc.tar.gz.5  sc.tar.gz.7  sc.tar.gz.9 sc.tar.gz.0  sc.tar.gz.2  sc.tar.gz.4  sc.tar.gz.6  sc.tar.gz.8 [root@jack changsha]# cd sc [root@jack sc]# ls sc1.txt  sc2.txt  sc3.txt  sc4.txt  sc.txt

讯享网[root@jack changsha]# cat sc.tar.gz.* >>sc.tar.gz [root@jack changsha]# ls sc         sc.tar.gz.0  sc.tar.gz.2  sc.tar.gz.4  sc.tar.gz.6  sc.tar.gz.8 sc.tar.gz  sc.tar.gz.1  sc.tar.gz.3  sc.tar.gz.5  sc.tar.gz.7  sc.tar.gz.9 [root@jack changsha]# du -sh sc.tar.gz 976K    sc.tar.gz [root@jack changsha]# tar tf sc.tar.gz sc/ sc/sc1.txt sc/sc2.txt sc/sc3.txt sc/sc4.txt sc/sc.txt

[root@jack zhang]# tar -zcf /zhang/boot.tar.gz /boot [root@jack zhang]# tar --exclude=/boot/grub2 -zcf /zhang/no-grub2-boot.tar.gz /boot [root@jack zhang]# tar --exclude=/boot/{grub2,efi} -zcf /zhang/no-efi-boot.tar.gz /boot [root@jack zhang]# ls boot.tar.gz  no-efi-boot.tar.gz  no-grub2-boot.tar.gz

不需要引号引起来

讯享网[root@jack zhang]# tar --exclude=/boot/{grub2,loader}  -czf /bak/no-grub2.tar.gz  /boot tar --exclude=/mydata/log -czf /wag/no_log_mydata.tar.gz /mydata/

小讯
上一篇 2025-02-17 07:37
下一篇 2025-04-03 15:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/62945.html