• linux环境文件或者文件夹打包


    1、linux zip压缩

    压缩当前文件夹下所有文件,压缩为a.zip。命令行的方法是怎样。

    1. 常用格式:
    2. zip -r fileName.zip 文件夹名

     (1)把/home目录下面的data目录压缩为data.zip

    zip -r data.zip data #压缩data目录

     (2)把/home目录下面的data.zip解压到databak目录里面

    unzip data.zip -d databak

    (3) 覆盖源路径解压

    unzip -o healthcode-catch.zip -d disaster-recovery

    (4)把/home目录下面的a文件夹和3.txt压缩成为a123.zip

    zip -r a123.zip a 3.txt

    (5)把/home目录下面的t.zip直接解压到/home目录里面

    unzip t.zip

    (6)把/home目录下面的a1.zip、a2.zip、a3.zip同时解压到/home目录里面

    unzip a*.zip

    (7)把/home目录下面w.zip里面的所有文件解压到第一级目录

    unzip -j wt.zip

    2、linux tar压缩

    (1)tar命令格式:

    1. 下面五个参数是独立的,压缩解压都要用到其中一个,可以和下面的命令连用但只能用其中一个。
    2. -c: 建立压缩档案(创建一个新的tar文件)
    3. -x:解压
    4. -t:查看内容
    5. -r:向压缩归档文件末尾追加文件
    6. -u:更新原压缩包中的文件
    7. 下面的参数是根据需要在压缩或解压档案时可选的。
    8. -z:使用gzip压缩它
    9. -j:有bz2属性的
    10. -Z:有compress属性的
    11. -v:详细,显示要压缩或解压缩的文件
    12. -O:将文件解开到标准输出
    13. -p :使用原文件的原来属性(属性不会依据使用者而变)
    14. 参数-f是必须的。
    15. -f: 以提供的文件名作为参数创建tar文件

    (2)tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。

    1. 常用格式:
    2. 单个文件压缩打包 tar czvf my.tar file1
    3. 多个文件压缩打包 tar czvf my.tar file1 file2,…
    4. 单个目录压缩打包 tar czvf my.tar dir1
    5. 多个目录压缩打包 tar czvf my.tar dir1 dir2
    6. 解包至当前目录:tar xzvf my.tar
    1. 压缩为*.tar
    2. tar -cvf test.tar test.txt
    3. *.tar解压缩
    4. tar -xvf test.tar
    1. 压缩为*.gz
    2. tar -zcvf test.tar.gz test.txt
    3. *.gz解压缩
    4. tar -zxvf test.tar.gz
    1. 压缩为*.bz2
    2. tar -jcvf test.tar.bz2 test.txt
    3. *bz2解压缩
    4. tar -jxvf test.tar.bz2

     3、分卷压缩

    (1)使用tar分卷压缩

    1. 格式:
    2. tar zcvf - filedir | split -d -b 500m - filename
    1. 样例:
    2. tar zcvf - ./picture | split -d -b 500m - picture
    1. 将./picture打包,并切割为 500m 的包
    2. 输出的文件为 filename00、filename01、filename02 …
    3. 假设不加filename,则输出文件为 x00、x01、x02 …
    4. 假设不加參数 -d。则输出aa、ab、ac …

     (2)解压分卷

    1. 首先将分卷包合并
    2. cat x* > myzip.tar.gz
    3. 然后解压
    4. tar zxvf myzip.tar.gz
    1. 样例:
    2. cat picture* > picture.tar.gz
    3. tar zxvf picture.tar.gz

    4、Linux脚本——把指定目录下的所有目录(文件夹)分别单独打包

    (1)编写Linux shell 脚本完整代码如下 ——yasuo.sh

    1. #!/bin/bash
    2. function zipFile(){
    3. echo $1
    4. flist=`ls $1`
    5. cd $1
    6. echo $flist
    7. for f in $flist
    8. do
    9. if test -d $f
    10. then
    11. #echo "dir:$f"
    12. zip -r $f.zip $f
    13. fi
    14. done
    15. }
    16. zipFile $1

     注意:

    • 传入参数——指定目录
    • ls 获取目录下文件 到 flist
    • 遍历flist判断是否是目录,如果是目录则进行打包操作 zip -r $f.zip $f

    (2)应用: 

    1. # 修改脚本属性为 可执行
    2. chmod 755 yasuo.sh
    3. # 指定目录即可
    4. ./yasuo.sh 123/

     (3)效果:

  • 相关阅读:
    玩转堆排序以及Topk问题——【数据结构】
    社交电商盲盒活动方案,让消费者享受购物乐趣
    0-搭建nodejs环境
    【c语言】atoi的模拟实现
    MS SQL Server partition by 函数实战 统计与输出
    在windows桌面上部署网站
    与 MixDAO 来一场AI生成视频的零门槛共创 #stableboost.ai
    flink 自定义序列化对象Sink/Source
    chrome浏览器 给windows通知中心 发消息
    数字赋能机械制造业,供应链协同管理系统解决方案助力企业供应链再升级
  • 原文地址:https://blog.csdn.net/wd520521/article/details/126050419