linux中相关压缩文件的便捷方式

1.压缩解压缩命令

tar命令

tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。 一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件

常用参数
选项功能
-c创建一个新tar文件
-v显示运行过程的信息
-f指定文件名
-z调用gzip压缩命令进行压缩/解压缩
-t查看压缩文件的内容
-x解压tar文件

1.1 tar压缩打包

打包文件
        tar –cvf xxx.tar 目录名/文件1 文件2

示例:

   tar -cvf mycvfab.tar a.txt b.txt

打包并且压缩
tar –zcvf xxx.tar.gz 目录名/文件1 文件2

示例:

tar -zcvf houma.tar.gz houge.txt bailongma.txt 

1.2 tar解压

  • 解压到当前目录
    tar -zxvf houma.tar.gz
  • 解压到指定目录

    解压到usr目录下的aa目录中

    tar -zxvf xxx.tar.gz -C /usr/aaa

     

1.3常见的便捷压缩方式

        1.3.1压缩多个目录

如果你只想压缩多个目录,而不需要包括目录中的所有文件,你可以使用 `tar` 命令来将这些目录打包到一个归档文件中,然后再使用 `gzip` 命令进行压缩。以下是一个高效的方式:


tar -czvf archive.tar.gz directory1 directory2 directory3
 

这个命令将会创建一个名为 `archive.tar.gz` 的压缩包,其中包含了 `directory1`、`directory2` 和 `directory3` 这三个目录及其内容。

如果你想要压缩目录的内容(包括子目录和文件),可以使用 `-C` 选项:


tar -czvf archive.tar.gz -C /path/to/directory1 -C /path/to/directory2
 

这样会将 `directory1` 和 `directory2` 目录及其内容压缩到 `archive.tar.gz` 文件中。

另外,如果你想要在归档文件中保留目录结构(即在解压缩时保持目录层次结构),你可以使用相对路径:


tar -czvf archive.tar.gz -C /path/to/parent_directory directory1 directory2
 

这个命令将会在 `archive.tar.gz` 文件中保留 `directory1` 和 `directory2` 目录,其路径相对于 `/path/to/parent_directory`。

总之,`tar` 命令可以灵活地打包指定的目录或文件,可以根据需要调整命令参数来达到想要的压缩效果。

        1.3.2压缩某个目录下的多个文件

如果你只想压缩某个目录下的多个文件,而不需要压缩整个目录及其子目录,你可以直接在 `tar` 命令中列出这些文件的路径。以下是一个示例:


tar -czvf archive.tar.gz /path/to/directory/file1.txt /path/to/directory/file2.txt /path/to/directory/file3.txt
 

这个命令将创建一个名为 `archive.tar.gz` 的压缩包,其中包含了 `/path/to/directory/` 目录下的 `file1.txt`、`file2.txt` 和 `file3.txt` 这三个文件。

1.3.3压缩文件夹命名有规律的

如果这些文件夹命名有规律,例如它们的命名遵循了某种模式,你可以使用通配符来选择匹配的文件。例如,如果你想要压缩以 `log` 开头的所有文件,你可以这样做:


tar -czvf archive.tar.gz /path/to/directory/log*.txt
 

这将压缩 `/path/to/directory/` 目录下所有以 `log` 开头并以 `.txt` 结尾的文件。

如果你的文件名有规律,但是无法通过通配符匹配,你可能需要编写一个脚本来生成要压缩的文件列表,然后将其传递给 `tar` 命令。例如,你可以使用 `find` 命令来查找符合特定条件的文件,并将其输出传递给 `tar` 命令:


find /path/to/directory/ -type f -name "pattern*" -exec tar -rvf archive.tar {} \;
 

这个命令将查找 `/path/to/directory/` 目录下所有以 `pattern` 开头的文件,并将它们添加到名为 `archive.tar` 的归档文件中。

举例:

如果想要压缩某个月份的日志如下:

tar -zcvf txService.log.2024-04.16-31.tar.gz txService.log.2024-03-{16..31}

这个命令是使用 tar 命令将一组特定的日志文件压缩为一个压缩包,并使用 gzip 进行压缩。让我们分解一下这个命令的各个部分:

  • tar: 这个命令用于创建和解压缩归档文件(也称为 "tarballs")。它可以将多个文件和目录组合成一个归档文件。

  • -z: 使用 gzip 压缩归档文件。这意味着生成的文件会被压缩,通常扩展名为 .tar.gz

  • -c: 创建一个新的归档文件。

  • -v: 可选参数,表示显示详细信息。在处理归档文件时,这个选项会输出处理的文件名。

  • -f: 指定输出文件名。

  • txService.log.2024-04.16-31.tar.gz: 这是生成的压缩包的文件名。在这个例子中,压缩包的名称暗示它包含了从2024年4月16日到31日之间的日志。

  • txService.log.2024-03-{16..31}: 这是你要添加到压缩包中的文件。大括号 {16..31} 是一个 "Brace Expansion" 语法,它会生成一系列字符串,在这个例子中是从16到31之间的数字。这意味着这个命令会尝试添加与 txService.log.2024-03-16, txService.log.2024-03-17,...,txService.log.2024-03-31 这些文件名匹配的文件。

所以,整个命令的作用是将一组在2024年3月16日至31日之间的 txService.log 文件压缩到一个名为 txService.log.2024-04.16-31.tar.gz 的压缩包中,并且使用 gzip 压缩。

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ヾ草木萤火(≧▽≦*)o

希望大家多多支持,我会继续分享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值