备份的大文件,因为大文件不方便传输,切割成多个小文件。
实验:
对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/

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