• Linux之文件打包,压缩,解压


    打包和压缩

    Linux中对文件进行打包,压缩有两种命令

    zip:将文件进行压缩

    tar:将文件进行打包(通过和其他命令结合,也能实现压缩的功能)

    1、tar打包命令

    在Linux中,tar命令是一个常用的工具,用于打包和解压文件。它在文件管理、备份和压缩方面扮演着重要角色。tar(tape archive)最初是为磁带设备设计的,但现在已经成为文件操作的标准工具之一。它能够将一组文件和目录打包成单个归档文件,也可以从归档文件中提取出文件和目录。通过结合不同的选项,你可以在tar命令中实现广泛的功能。

    tar [选项] file.tar [file]

    1.1、常用参数

    参数功能
    -c创建新的归档文件(打包)
    -x从归档文件中提取文件(解包)
    -f <文件名>指定归档名
    -v显示操作的详细信息
    -z通过gzip的方式压缩归档文件
    -j通过bzip2的方式压缩归档文件
    -C指定目录

     

    1.2 常规操作

    1. # 将file1的文件打包成一个文件
    2. tar -cvf file.tar file1
    3. # 将aa目录打包
    4. tar -cvf aa.tar aa/
    5. # 将aa目录打包并通过gzip的方式压缩
    6. tar -zcvf aa.tar.gz aa/
    7. #查看归档文件中的内容
    8. tar -tvf aa.tar
    9. # 将aa.tar解压到当前路径
    10. tar -xvf aa.tar
    11. # 将aa.tar解压到指定目录
    12. tar -xvf aa.tar -C bb/

    2、 zip压缩命令

    zip file.zip [选项] 文件

    2.1、 常用参数

    参数功能
    -r压缩文件夹
    -q压缩文件时不显示压缩过程的详细信息。
    -d从压缩文件中删除指定文件
    -u 用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中。
    -f用于刷新(更新)现有ZIP文件中的指定文件。
    -m用于移动(归档)文件到一个ZIP压缩文件中,并在移动后将源文件删除。
    -e用于对ZIP文件进行加密。
    -z为压缩文件添加注释。

    2.2、常规操作

    1. # 压缩某个文件
    2. [root@192 ~]# zip aa.zip aa.tar
    3. adding: aa.tar (deflated 97%)
    4. # 压缩某个目录
    5. [root@192 ~]# zip aa.zip -r aa/
    6. adding: aa/ (stored 0%)
    7. adding: aa/file1 (deflated 85%)
    8. adding: aa/file5 (deflated 82%)
    9. adding: aa/file2 (deflated 82%)
    10. adding: aa/file.tar (deflated 96%)
    11. # 静默压缩
    12. [root@192 ~]# zip aa.zip -q -r aa/
    13. [root@192 ~]#
    14. # 从压缩文件中删除某个文件
    15. [root@192 aa]# zip file.zip -d file5
    16. deleting: file5
    17. # 往压缩文件中更新某个文件
    18. [root@192 aa]# zip file.zip -u file5
    19. adding: file5 (deflated 82%)
    20. # 往压缩文件中更新某个文件
    21. [root@192 aa]# zip file.zip -f file5
    22. freshening: file5 (deflated 71%)
    23. # 将某个文件添加到压缩文件中,并删除源文件
    24. [root@192 aa]# zip file.zip -m file6
    25. adding: file6 (stored 0%)
    26. [root@192 aa]# ll
    27. 总用量 16
    28. -rw-r--r--. 1 root root 1901 6月 5 21:56 file1
    29. -rw-r--r--. 1 root root 74 6月 5 21:51 file2
    30. -rw-r--r--. 1 root root 86 6月 5 22:49 file5
    31. -rw-r--r--. 1 root root 1400 6月 5 22:50 file.zip
    32. # 压缩某个文件并进行加密
    33. [root@192 aa]# zip test.zip file* -e
    34. Enter password:
    35. Verify password:
    36. adding: file1 (deflated 85%)
    37. adding: file2 (deflated 82%)
    38. adding: file5 (deflated 71%)
    39. # 压缩某个文件并添加注释
    40. [root@192 aa]# zip test.zip file* -z
    41. adding: file1 (deflated 85%)
    42. adding: file2 (deflated 82%)
    43. adding: file5 (deflated 71%)
    44. enter new zip file comment (end with .):
    45. zheshi^H^H
    46. .

    3、unzip解压命令

    unzip是用来对zip文件进行解压的命令

    unzip [选项] 压缩包名 源文件或源目录列表

    3.1、 常用参数

    参数功能
    -l显示压缩文件内所包含的文件
    -t检查压缩文件是否正确
    -v执行时显示详细的信息
    -z仅显示压缩文件的备注文字
    -n解压缩时不要覆盖原有的文件
    -P<密码>使用zip的密码选项

    -q

    执行时不显示任何信息
    -d<目录>指定文件解压缩后所要存储的目录

    3.2、常规操作

    1. # 显示压缩包中的文件,但是不做解压
    2. [root@192 aa]# unzip -l t.zip
    3. Archive: t.zip
    4. Length Date Time Name
    5. --------- ---------- ----- ----
    6. 0 06-05-2024 23:33 test/
    7. 1901 06-05-2024 21:56 test/file1
    8. 74 06-05-2024 21:51 test/file2
    9. 86 06-05-2024 22:49 test/file5
    10. --------- -------
    11. 2061 4 files
    12. # 解压文件压缩包到指定目录(如果目录不存在,则会创建一个目录)
    13. [root@192 aa]# unzip t.zip -d test/
    14. Archive: t.zip
    15. inflating: test/file1
    16. inflating: test/file2
    17. inflating: test/file5
    18. # 解压路径压缩包到指定目录(如果目录不存在,则会创建一个目录)
    19. 先创建一个压缩包(相对路径)
    20. [root@192 aa]# zip t.zip -r test/
    21. adding: test/ (stored 0%)
    22. adding: test/file1 (deflated 85%)
    23. adding: test/file2 (deflated 82%)
    24. adding: test/file5 (deflated 71%)
    25. [root@192 aa]# ll
    26. 总用量 16
    27. -rw-r--r--. 1 root root 1901 6月 5 21:56 file1
    28. -rw-r--r--. 1 root root 74 6月 5 21:51 file2
    29. -rw-r--r--. 1 root root 86 6月 5 22:49 file5
    30. drwxr-xr-x. 2 root root 45 6月 5 23:33 test
    31. -rw-r--r--. 1 root root 918 6月 5 23:35 t.zip
    32. # 解压到指定目录
    33. [root@192 aa]# unzip t.zip -d a/
    34. Archive: t.zip
    35. creating: a/test/
    36. inflating: a/test/file1
    37. inflating: a/test/file2
    38. inflating: a/test/file5
    39. [root@192 aa]# ll
    40. 总用量 16
    41. drwxr-xr-x. 3 root root 18 6月 5 23:35 a
    42. -rw-r--r--. 1 root root 1901 6月 5 21:56 file1
    43. -rw-r--r--. 1 root root 74 6月 5 21:51 file2
    44. -rw-r--r--. 1 root root 86 6月 5 22:49 file5
    45. drwxr-xr-x. 2 root root 45 6月 5 23:33 test
    46. -rw-r--r--. 1 root root 918 6月 5 23:35 t.zip
    47. 可以看到在a目录下,又创建了test目录
    48. [root@192 aa]# ll a
    49. 总用量 0
    50. drwxr-xr-x. 2 root root 45 6月 5 23:33 test
    51. # 测试压缩文件的有效性
    52. [root@192 aa]# unzip -t t.zip
    53. Archive: t.zip
    54. testing: test/ OK
    55. testing: test/file1 OK
    56. testing: test/file2 OK
    57. testing: test/file5 OK
    58. No errors detected in compressed data of t.zip.

  • 相关阅读:
    CSS 盒子模型
    python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结
    目标检测笔记(十三): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程))
    vue组件的基本介绍
    YOLO X 改进详解
    NiFi 1.16.3 生产使用的更新及BUG。
    这两个面试题一口气全做对的没几个吧
    基于Web的Markdown编辑器HedgeDoc
    python 2018全国自学考试第2章 第6题-other人的共识也是共识,等着下班期间重新设计一下简单的题
    SpringBoot学习之Redis下载安装启动【Windows版本】(三十六)
  • 原文地址:https://blog.csdn.net/qq_41124528/article/details/139482311