• 如何把大的‘tar‘存档文件分割成特定大小的多个文件


    你担心通过网络传输或者上传大型文件吗? 现在不用再担心了,因为你可以通过分割你的文件为指定大小块,以比特移动你的文件来处理缓慢的网速。

    我们在这里应该简要地利用存档文件地创建斌且分割它们为一个所选大小块。我们使用tar,在Linux上最流行的存档工具之一并使用split工具帮助我们分割存档文件成小块。

    在我们进一步前,我们注意如何使用这些工具,tar和split命令的一般语法如下:

    1. # tar options archive-name files
    2. # split options file "prefix”

    我们研究一些示例来演示主要概念。

    示例1:我们可以按如下创建一个存档文件:

    1. [root@rockygu ~]# tar -cvjf test.tar.br2 test/*
    2. test/fold/
    3. test/guid.txt
    4. test/perm.txt
    5. test/rock.html
    6. test/Rock.txt
    7. test/Rocky/
    8. test/Rocky/1.txt
    9. test/Rocky/2.txt
    10. test/Rocky/3.txt
    11. test/Rocky/4.txt
    12. test/Rocky/5.txt
    13. test/rocky.c
    14. test/rocky.sh
    15. test/suid.txt
    16. test/test.tar.gz
    17. [root@rockygu ~]# ls
    18. test test.tar.br2

    要确认这个存档文件已经被创建并且也检查它的大小,我们可以使用ls命令:

    1. [root@rockygu ~]# ls -lh test.tar.br2
    2. -rw-r--r-- 1 root root 2.9M Jul 3 22:21 test.tar.br2

    接着使用split工具,我们按以下把test.tar.br2存档文件分割为每个尺寸1M的小块:

    1. [root@rockygu ~]# split -b 1M test.tar.br2 "test.tar.br2.part"
    2. [root@rockygu ~]# ls -lh
    3. total 5.8M
    4. drwxr-xr-x 4 root root 177 Jul 3 09:04 test
    5. -rw-r--r-- 1 root root 2.9M Jul 3 22:21 test.tar.br2
    6. -rw-r--r-- 1 root root 1.0M Jul 3 22:26 test.tar.br2.partaa
    7. -rw-r--r-- 1 root root 1.0M Jul 3 22:26 test.tar.br2.partab
    8. -rw-r--r-- 1 root root 917K Jul 3 22:26 test.tar.br2.partac

    如你从以上命令输出所见,tar存档文件已经被分成了3个部分。

    注意:在以上split命令中,选项-b用于指定每个块的尺寸,而"test.tar.br2.part"是分割后创建的每个块文件名称的前缀。

    示例2:在这个实例中,我们按如下使用管道连接tar的输出到split:

    1. [root@rockygu ~]# tar -cvzf - test/* | split -b 500K - "test_2.tar.gz.part"
    2. test/fold/
    3. test/guid.txt
    4. test/perm.txt
    5. test/rock.html
    6. test/Rock.txt
    7. test/Rocky/
    8. test/Rocky/1.txt
    9. test/Rocky/2.txt
    10. test/Rocky/3.txt
    11. test/Rocky/4.txt
    12. test/Rocky/5.txt
    13. test/rocky.c
    14. test/rocky.sh
    15. test/suid.txt
    16. test/test.tar.gz

    确认这些文件:

    1. [root@rockygu ~]# ls -lh test_2.tar.gz.part*
    2. -rw-r--r-- 1 root root 500K Jul 3 23:41 test_2.tar.gz.partaa
    3. -rw-r--r-- 1 root root 500K Jul 3 23:41 test_2.tar.gz.partab
    4. -rw-r--r-- 1 root root 500K Jul 3 23:41 test_2.tar.gz.partac
    5. -rw-r--r-- 1 root root 500K Jul 3 23:41 test_2.tar.gz.partad
    6. -rw-r--r-- 1 root root 500K Jul 3 23:41 test_2.tar.gz.partae
    7. -rw-r--r-- 1 root root 449K Jul 3 23:41 test_2.tar.gz.partaf

    在这个示例中,如你注意到我们不需要指定一个存档名称,只要使用'-'符号。

    在分割后如何组合tar文件

    在Linux中成功分割tar文件或者任何大型文件后,你可以使用cat命令组合这些文件。使用cat是执行组合操作的最高效和可靠方法。

    要组合回所有块或tar文件,我们发出以下命令:

    1. [root@rockygu back]# ls
    2. test_2.tar.gz.partaa test_2.tar.gz.partac test_2.tar.gz.partae
    3. test_2.tar.gz.partab test_2.tar.gz.partad test_2.tar.gz.partaf
    4. [root@rockygu back]# cat test_2.tar.gz.part* > backup.tar.gz
    5. [root@rockygu back]# ls
    6. backup.tar.gz test_2.tar.gz.partab test_2.tar.gz.partad test_2.tar.gz.partaf
    7. test_2.tar.gz.partaa test_2.tar.gz.partac test_2.tar.gz.partae

    我们能够看到在运行cat命令后,它组合我们先前创建的所有小块成相同大小的原先tar存档文件。

    解压组合回的文件,检查其中内容:

    1. [root@rockygu back]# tar -xvzf backup.tar.gz
    2. test/fold/
    3. test/guid.txt
    4. test/perm.txt
    5. test/rock.html
    6. test/Rock.txt
    7. test/Rocky/
    8. test/Rocky/1.txt
    9. test/Rocky/2.txt
    10. test/Rocky/3.txt
    11. test/Rocky/4.txt
    12. test/Rocky/5.txt
    13. test/rocky.c
    14. test/rocky.sh
    15. test/suid.txt
    16. test/test.tar.gz
  • 相关阅读:
    AI 引擎系列 1 - 从 AI 引擎工具开始(2022.1 更新)
    html和css(1)
    Django学习笔记
    深度解析BERT:从理论到Pytorch实战
    数字化工厂的实施挑战与解决方法
    spring中注解来创建bean
    JVM常用概念之锁粗化和循环
    VUE基础知识四:事件绑定及修饰符、双向绑定
    领悟《信号与系统》之 非周期信号的傅里叶变换及性质
    十大经典排序算法(java实现、配图解,附源码)
  • 原文地址:https://blog.csdn.net/yuyuyuliang00/article/details/125589191