`
lovejuan1314
  • 浏览: 342787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用tar 和 split 将文件打包、压缩并分割成指定大小

阅读更多
转自:http://evan.bloghome.cn/posts/12563.html

在Linux下使用 tar 命令来将文件打包并压缩是很通常的用法了。可是Linux的文件系统对文件大小有限制,也就是说一个文件最大不能超过2G,如果压缩包的的内容很大,最后的结果就会超过2G,那么该怎么办呢?又或者压缩包希望通过光盘来进行备份,而每张光盘的容量只有700M,那么该如何存储呢?解决的办法就是将最后的压缩包按照指定大小进行分割,这就需要用到split命令了。

举例说明:
要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:
tar cjf - logs/ |split -b 1m - logs.tar.bz2.
完成后会产生下列文件:
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.aa
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.ab
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.ac
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:38 logs.tar.bz2.ad
-rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:38 logs.tar.bz2.ae
-rw-r--r-- 1 httpd nobody 829440 Oct 5 15:39 logs.tar.bz2.af

这样存储压缩包的目的就达到了,可是当要解压的时候要怎么做呢?只要执行下面的命令就可以了:
cat logs.tar.bz2.a* | tar xj


这里对命令做一些讲解。
压缩和分割命令行中红色部分的为命令对应的I/O文件名参数,其中-表示标准输入或输出。那么结合上面的例子,tar命令表示的意思就是将logs目录压缩,生成的结果直接输送到标准输出上;而split命令表示从标准输入获得文件内容进行分割,结果文件前缀为logs.tar.bz2.。二者再通过管道将各自的标准输入输出对接起来。

这里再解释一下split命令的参数含义:
-b SIZE 指定每个文件的大小,其单位可以为b(512字节)、k(1K)、m(1M)
-d 使用数字而不是字母作为后缀名
-a X 指定后缀名的长度,默认为2位

这样上面的命令就可以变化为:
tar cjf - logs/ |split -b 1m -d -a 1- logs.tar.bz2.

如果需要了解更多关于命令的信息,那就要查看man手册了
分享到:
评论

相关推荐

    tar-gz解压合并

    - `split -b 2M -d proc.tar.gz`:将前面产生的流按照每2MB的大小进行分割,并将每个片段保存为`proc.tar.gz00`、`proc.tar.gz01`等命名的文件。这里`-b 2M`指定了每个文件的大小限制,`-d`表示使用数字后缀。 3. ...

    Unix平台下的常用命令技巧之 tar包、压缩与解压缩 .txt

    - `split -b 100k big.file`:将big.file分割成多个大小为100KB的小文件。 - `split -l 500 big.file`:将big.file分割成每500行一个文件。 以上就是在Unix平台下关于`tar`命令以及常见压缩与解压缩操作的一些...

    linux分卷压缩与解压缩.docx

    例如,要将 logs 目录打包压缩并分割成多个 1M 的文件,可以使用以下命令: tar cjf - logs/ |split -b 1m - logs.tar.bz2 完成后,会产生下列文件: logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac 要解...

    WPS2009最新版提供下载2

    要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令: tar cjf - logs/ |split -b 1m - logs.tar.bz2. 完成后会产生下列文件: -rw-r--r-- 1 httpd nobody 1048576 Oct 5 15:37 logs.tar.bz2.aa -rw-r--r-...

    pandasplit-0.1.tar.gz

    "split" 字样通常与数据分割有关,可能这个工具提供了一些高级功能,比如按照特定规则或者大小将大DataFrame拆分成多个小块,这对于大数据处理和分布式计算非常有用。 描述中的 "pandasplit-0.1.tar" 可能是原始的...

    Python库 | echo1-coco-split-0.1.2.tar.gz

    ".tar.gz" 文件格式是Linux和Unix环境中常见的归档和压缩方式,它将多个文件打包成一个单一的.tar文件,然后使用gzip工具进行压缩,以便于分发和存储。 Python是一种广泛使用的高级编程语言,尤其在后端开发、数据...

    tar命令高级用法——备份数据.doc

    对于大文件或目录,可以使用`split`命令来分割备份文件,确保每个文件不超过特定大小。例如,以下命令将`/tmp/data`目录备份到多个1GB的文件中,同时排除`./cache`目录: ```bash # 完全备份 cd /tmp/data rm -f /...

    PyPI 官网下载 | jacquard-split-0.1.2.tar.gz

    ".tar.gz"是常见的Linux/Unix压缩格式,由tar工具打包并用gzip进行压缩,便于在不同操作系统之间传输和存储。 接下来,我们看看标签:“zookeeper”,“分布式”,“云原生”以及“Python库”。这些标签揭示了...

    pandasplit-0.3.tar.gz

    ".tar"是Unix/Linux系统中的归档格式,用于将多个文件和目录打包成一个单一的文件,便于传输和存储。".gz"是gzip的压缩算法,进一步减小了文件大小。 解压"pandasplit-0.3.tar.gz"通常需要两个步骤:首先使用gunzip...

    PyPI 官网下载 | split_qr_exam-0.1.2.tar.gz

    ".tar.gz"则表示这是一个经过tar打包并使用gzip压缩的文件,这是在Unix和Linux系统中常见的归档和压缩格式,对于Python来说,这种格式常用于发布源代码包。 Python库的构建通常基于setup.py文件,这是一个Python...

    命令行输入文件管理器

    6. 文件分割合并:`split`命令用于将大文件分割成小块,而`cat`命令用于将这些小块合并回原文件。例如,`split -b 1M bigfile.txt smallfile`会将"bigfile.txt"按1MB大小分割,生成名为"smallfileaa", "smallfileab...

    常用linux指令.pdf

    - `tar`:用于打包和压缩文件,`zcvf` 参数压缩为`.tar.gz`格式,`jcvf` 压缩为`.tar.bz2`格式。 - `unzip`:解压缩`.zip`文件。 - `gzip` 和 `gunzip`:处理`.gz`文件的压缩和解压。 - `tar` 的解压功能:`zxvf...

    常用linux指令.docx

    `split`命令用于将大文件分割成多个小文件,可以按大小或行数进行分割。`cat`和`paste`命令用于合并文件,前者用于合并具有相同格式的文件,后者则可以合并多列数据。 掌握这些基本的Linux命令,将极大地提升你在...

    PyPI 官网下载 | splitnjoin-0.50.tar.gz

    tar.gz是一种常见的文件归档和压缩格式,由UNIX系统上的"tar"命令用于打包文件,然后用"gzip"工具进行压缩。在Python中,可以使用内置的`tarfile`和`gzip`模块来读取和解压这种类型的文件。要安装这个库,首先需要将...

    Linux基础命令

    当需要将大型文件分割成多个小文件时,可以使用`tar`命令结合`split`命令来实现分卷。例如: ```bash tar czf - directory | split -b 50M - file_prefix ``` 这里,`directory`是要备份的目录,`50M`是每个分卷的...

    Apache Commons Compress

    11. **TAR**:一个简单的打包工具,可以将多个文件和目录打包成一个大文件,不包含压缩。 12. **XZ**:基于LZMA2压缩算法的开源压缩格式,提供了比GZIP更高的压缩比。 13. **Z**:古老的UNIX压缩格式,使用LZW算法。...

    C、C++笔试面试宝典2010版

    - **分割文件**:`<split>` - 将大文件分割成多个小文件。 - **以行连接文件**:`<paste>` - 将文件的行合并到一起输出。 - **以字段连接文件**:`<join>` - 将两个文件按字段进行合并。 - **查询文字**:`<grep>` -...

    Shell_经典实例

    1. **备份操作**:通过`cd`命令进入源目录,然后使用`tar cf - .`将当前目录下的所有内容压缩打包到标准输出。 2. **恢复操作**:在目标目录下执行`tar zxf -`,将从标准输入接收到的数据解压到当前目录。 这个脚本...

Global site tag (gtag.js) - Google Analytics