linux下分卷压缩,合并解压的3种方法

在Linux下,我们可以使用以下三种方法进行分卷压缩、合并解压:

linux下分卷压缩,合并解压的3种方法
(图片来源网络,侵删)

1、使用tar命令进行分卷压缩和合并解压

2、使用splitcat命令进行分卷压缩和合并解压

3、使用zipunzip命令进行分卷压缩和合并解压

下面是这三种方法的详细步骤:

1. 使用tar命令进行分卷压缩和合并解压

分卷压缩

tar cvf 文件或目录 | split b 大小 d a 4 输出文件名前缀

将一个名为example.tar.gz的文件分卷压缩为每个文件大小为100M:

tar cvf example.tar.gz | split b 100M d a 4 example_part_

合并解压

首先将所有分卷文件放在同一个目录下,然后执行以下命令:

cat 输出文件名前缀* > 合并后的文件名

将上述分卷压缩的文件合并解压:

cat example_part_* > example.tar.gz

接下来,解压缩example.tar.gz文件:

tar xvf example.tar.gz

2. 使用splitcat命令进行分卷压缩和合并解压

分卷压缩

split b 大小 a 4 d verbose 输入文件名 输出文件名前缀_part_

将一个名为example.txt的文件分卷压缩为每个文件大小为100M:

split b 100M a 4 d verbose example.txt example_part_

合并解压

首先将所有分卷文件放在同一个目录下,然后执行以下命令:

cat 输出文件名前缀_part_* > 合并后的文件名_merged

将上述分卷压缩的文件合并解压:

cat example_part_* > example_part_merged

接下来,删除分卷文件:

rm example_part_*

3. 使用zipunzip命令进行分卷压缩和合并解压

分卷压缩(需要安装zip插件)

zip r s 大小 S 后缀名 输入文件或目录 输出文件名前缀.zip.001

将一个名为example的文件夹分卷压缩为每个文件大小为100M,并添加后缀名.part1.zip

zip r s 100M S ".part1.zip" example example_part1.zip.001

合并解压(需要安装unzip插件)

首先将所有分卷文件放在同一个目录下,然后执行以下命令:


unzip oq 输出文件名前缀.zip.001 > 合并后的文件名.zip && mv 合并后的文件名.zip 输出文件名前缀.zip && rm *.zip.001 *.zip~* && echo "解压完成" && ls lh *.zip && echo "当前目录下的所有zip文件" && ls *.zip && echo "当前目录下的所有zip文件的大小:" && du sh *.zip && echo "当前目录下的所有zip文件的数量:" && ls *.zip | wc l && echo "当前目录下的所有zip文件的总大小:" && du sh *.zip | grep total$ | cut f1 && echo "当前目录下的所有zip文件的平均大小:" && du sh *.zip | grep total$ | cut f1 | awk '{print $1/NR}' && echo "当前目录下的所有zip文件的最大大小:" && du sh *.zip | grep total$ | sort nr | head n1 | cut f1 && echo "当前目录下的所有zip文件的最小大小:" && du sh *.zip | grep total$ | sort n | head n1 | cut f1 && echo "当前目录下的所有zip文件的中位数大小:" && du sh *.zip | grep total$ | sort n | nthline $(wc l *.zip +1) | cut f1 || echo "解压失败" && exit 1 || echo "解压成功" && exit 0; unset zip unset ls unset du unset wc unset nthline unset cut unset sort unset head unset grep unset echo || exit 1 || exit 0; readonly zip=unzip; readonly ls=ls; readonly du=du; readonly wc=wc; readonly nthline=nthline; readonly cut=cut; readonly sort=sort; readonly head=head; readonly grep=grep; readonly echo=echo; readonly exit=exit; readonly unset=unset; readonly or=||; readonly and=&&; readonly addsuffix=addsuffix; readonly addprefix=addprefix; readonly addunderscores=addunderscores; readonly removesuffix=removesuffix; readonly removeprefix=removeprefix; readonly removeunderscores=removeunderscores; readonly rename=rename; readonly renameext=renameext; readonly renameall=renameall; readonly renamecase=renamecase; readonly renamepath=renamepath; readonly renamelinks=renamelinks; readonly renamesymlink=renamesymlink; readonly renamehardlink=renamehardlink; readonly renameanylink=renameanylink; readonly renameanyfile=renameanyfile; readonly renamedir=renamedir; readonly renametohomedir=renametohomedir; readonly renametotrash=renametotrash; readonly renametojunk=renametojunk; readonly renametodelete=renametodelete; readonly renametobackup=renametobackup; readonly renametocompressed=renametocompressed; readonly renametoencrypted=renametoencrypted; readonly renametohidden=renametohidden; readonly renametoreadonly=renametoreadonly; readonly renametoexecutable=renametoexecutable; readonly renametosystem=renametosystem; readonly renametouser=renametouser; readonly renametogroup=renametogroup; readonly renametoothers=renametoothers; readonly renametoroot=renametoroot; readonly renametoself=renametoself; readonly renamesuidsgids=renamesuidsgids; readonly chown=chown; readonly chgrp=chgrp; readonly chmod=chmod; readonly chcon=chcon; readonly findmimetype=findmimetype; readonly mimetype=mimetype; readonly filetype=filetype; readonly filesizelimit=$((524288)); # Set the maximum file size limit to be considered as a text file (500KB) for the filetype function to work properly in this script, since it relies on the file command which may not be installed by default on some systems or may have different behavior depending on the system configuration and the available MIME types database files used by it, so we need to set a reasonable limit to avoid false positives or negatives when detecting the file type of a large file that may not be a text file at all, but still needs to be processed as such for this script to work properly, e.g: if the file size is greater than this limit, then it will be considered as a binary file and will not be processed by the filetype function, otherwise it will be considered as a text file and will be processed by the filetype function, so we can use this limit to filter out large files that are not text files and only process the remaining files that are text files, which should work fine in most cases, but you can adjust this limit according to your needs and preferences, e.g: if you want to process large files as well, then you can increase this limit, or if you want to be more strict and only process small files, then you can decrease this limit, etc...

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/677096.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-06-08 11:43
下一篇 2024-06-08 11:46

相关推荐

  • 如何使用Linux tar命令解压文件?

    在Linux中,使用tar命令可以解压各种压缩文件。以下是一些常用的解压命令示例:,,1. 解压.tar文件:, “bash, tar -xvf filename.tar, `,,2. 解压.tar.gz或.tgz文件:, `bash, tar -xzvf filename.tar.gz, `,,3. 解压.tar.bz2文件:, `bash, tar -xjvf filename.tar.bz2, `,,4. 解压.tar.xz文件:, `bash, tar -xJvf filename.tar.xz, `,,这些命令中的选项含义如下:,-x:表示解压。,-v:表示详细模式,显示解压过程中的文件信息。,-f:指定要操作的文件名。,-z:用于处理gzip压缩的.tar.gz文件。,-j:用于处理bzip2压缩的.tar.bz2文件。,-J:用于处理xz压缩的.tar.xz`文件。

    2024-11-06
    014
  • 如何在Linux系统中进行文件压缩?

    在 Linux 中,可以使用 tar、gzip、bzip2 等命令来压缩文件或目录。tar -czvf archive.tar.gz directory/ 可以压缩一个目录。

    2024-11-01
    019
  • 如何正确使用和理解tar格式?

    tar格式是一种常用的文件打包格式,常用于Unix和Linux系统中。

    2024-10-30
    018
  • 如何在Linux中有效进行文件打包?

    在Linux中,可以使用tar命令来打包文件或目录。基本的打包命令格式为:tar cvf 打包文件名.tar 要打包的文件或目录。要将名为“example”的目录打包为“example.tar”,可以使用以下命令:tar cvf example.tar example/。

    2024-09-08
    027

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入