linux 基础(5)文件的打包和压缩
文件的压缩是非常重要和常见的操作。
在 Windows 下,zip 和 rar 经常使用的压缩软件,框选一堆文件,右键用 WinRAR 就可以完成压缩。不过在 linux 下通常不这么做。一是因为 linux 的压缩指令针对单个文件,将多个文件合为一个文件被称为“打包”,打包和压缩是分离的(其实 Win 下很多时候压缩文件目的主要也是打包而不是压缩嘛);二是因为 zip 和 GNU 不是一家的,所以 zip 不能完整保存压缩后文件的 rwx 等权限。
linux 常用的压缩工具有 gzip, bzip2, xz。
压缩
gzip, bzip2, xz 都是压缩单个文件的指令,通常压缩的文件以*.gz、*.bz2 或者 *.xz 作为文件名。这三个命令出现的时间越来越晚,压缩算法也越来越先进,用法基本相同,这里用 gzip 为例介绍他们。
$ gzip -选项 文件名
-c:将压缩文件通过管道输出
-v:压缩时控制台打印压缩信息
-d:解压缩参数
-1:数字表示压缩等级1-9,等级越高压缩时间越长,压缩比越好
-k:压缩后不删除源文件(默认删除)
$ gzip 1.cpp # 生成了 1.cpp.gz,源文件被删除
$ gzip -d 1.cpp.gz # 文件还原了,也可用 gunzip
要查看压缩文件的内容(如果是文本文件),无需解压缩,使用 zcat/zless/zgrep 直接查看压缩文件即可(与 cat/less/grep 对应);如果是 bzip2 文件就用 bzcat,xz 使用 xzcat。
打包
压缩指令只针对一个文件,打包 tar 可以将多个文件合成一个文件,所以压缩包常常是 .tar.gz 和 .tar.bz2 等形式。不过 tar 命令本身也承担的压缩的功能,他可以在打包完成后自动压缩。
$ tar [-zjJ]-其他命令 -f 文件名
-f:指定操作的文件名
-zjJ:z 表示使用 gzip 压缩,j 表示 bzip2,J 表示 xz。这是三选一的关系
-v:打包压缩时控制台打印信息
-p:保存数据的权限属性
-c:创建压缩包
-t:查看压缩包
-x:解压
$ tar -zcvf ./save.gz ./ # 当前目录打包到 save.gz
$ tar -ztvf ./save.gz # 查看
$ tar -zxvf ./save.gz # 解压缩
压缩的根目录问题:
同一个目录,用不同的路径写他,压缩文件里保存的路径也不一样
tar -vczf save.gz learngit
tar -vczf save.gz ../ofnoname/learngit
tar -vczf save.gz /home/ofnoname/learngit
tar -tzf save.gz # 查看压缩文件
第一个命令,压缩 learngit 文件夹,查看里面的内容,都是 learngit/xxx 的形式。而第二个命令,压缩出现提示"tar: 从成员名中删除开头的“../”",查看里面的内容,都是 ofnoname/learngit/xxx 的形式。第三个则没有了 / ,成为了home/ofnoname/learngit。
问题在于,如果你在一个地方解压缩文件,肯定是希望在当前目录下再出现一个文件夹来放置解压后的文件的,如果保留了../ofnoname/learngit,解压的时候就文件冒到上一个文件夹了;要是保留了/home/ofnoname/learngit,那更不得了,解这个压缩包文件就会直接出现在根目录了。
所以压缩的时候,默认会去除绝对目录,保证整个压缩包里是一个不能往上返回的相对目录,不过也可以使用 -P 保留原路径。
linux 基础(5)文件的打包和压缩的更多相关文章
- linux下文件的打包和压缩
文章来源:linux下文件的打包和压缩 目录 一.文件压缩的原理 二.linux常见的压缩指令 三.常用实例 1.tar命令 2.zip命令 3.gz命令 4.bz2命令 5.xz命令(必须分两步) ...
- Linux基础命令-文件与目录
Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...
- linux中tar命令(打包、压缩、解压)、zip和unzip、rar多种压缩文件
一.名词解释 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文件进行压缩,这 ...
- Linux学习总结(十四) 文件的打包和压缩
文件的压缩和打包,在windos下我们很熟悉.rar和.zip文件,这是两种压缩文件,他们支持单个文件和多个文件的压缩.windos下我们不提及打包的概念,虽然多个文件的压缩肯定存在打包过程.打包和压 ...
- Linux文件的打包与压缩
打包命令: tar tar 的选项与参数非常的多!我们只讲几个常用的选项,更多选项您可以自行 man tar 查询罗! [root@www ~]# tar [-j|-z] [cv] [-f 创建的档名 ...
- Linux学习笔记—文件与文件系统的压缩与打包(转载)
压缩文件的用途与技术 例如,计算机都是以byte单位来计量的,1byte占8bit.如果存储数字1,那么1byte就会空出7bit.采用一定的计算方式,压缩这些空间可以大大降低文件存储. Linux系 ...
- linux基础命令学习 (七)压缩解压
一.tar tar主要用来压缩和解压文件 语法: tar [主选项+辅选项] 文件或者目录 主选项: c 创建新的档案文件.如果用户想备份一个目录或是一些文件,就要选择这个选项.相当于打包. x 从档 ...
- 一、linux基础-对文件操作
1.1文件夹创建-复制-移动-重命名-删除1.创建文件夹mkdir zjbdir 2.复制文件/文件夹复制文件到:当前目录cp -r zjbdir zjbdir201600819复制文件到:当前目录 ...
- Linux基础操作文件等基础操作
作业一: 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) [root@bogon /]# cd /etc [root@bogon etc]# cat passwd ...
- Linux 基础——查看文件内容的命令
第四天,继续学习.今天看到一句话,"你以为你以为的就是你以为的吗?",这句话还是有点意思啊!!! 一.查看文件内容的命令 file dest:查看文件的类型.在Linux中,文件的 ...
随机推荐
- 【转载】 numpy数据类型dtype转换
原文地址: https://www.cnblogs.com/hhh5460/p/5129032.html =============================================== ...
- 【转载】AI的剥削:肯尼亚工人训练ChatGPT,看大量有害内容心理受伤——AI新时代下剥削
原文地址: https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_90623597686514 ...
- Synology NAS GitLab 配置
安装 安装的时候会提示服务器名.root用户名等,这步服务器名千万不要写错,不然会登不上去,提示 502. root 密码 网上有很多说 root 密码怎么获取的,但是都不适用. 实际上是第一个访问 ...
- 从头搭建一个嵌入式web服务器-boa服务器
一.什么是boa? BOA是一款非常小巧的Web服务器,源代码开放.性能优秀.支持CGI通用网关接口技术,特别适合应用在嵌入式系统中. BOA服务器主要功能是在互联嵌入式设备之间进行信息交互,达到通过 ...
- 官网使用conda&pip安装PyTorch命令总结(包含各版本)
原网页https://pytorch.org/get-started/previous-versions/ 因为有时访问该网站比较慢,所以本博客记录该网页内容 Installing previous ...
- JuiceFS 在多云架构中加速大模型推理
在大模型的开发与应用中,数据预处理.模型开发.训练和推理构成四个关键环节.本文将重点探讨推理环节.在之前的博客中,社区用户 BentoML 和贝壳的案例提到了使用 JuiceFS 社区版来提高模型加载 ...
- Spring框架之IOC介绍
Spring之IOC 简介 首先,官网中有这样一句话:Spring Framework implementation of the Inversion of Control (IoC) princip ...
- 安卓系统使用chrome插件(以yandex安装油猴为例)
以tampermonkey为代表的Chrome插件广受好评,但由于Chrome在安卓系统并不支持令人遗憾.所以带来安卓手机使用Chrome插件的教程. 一,首先下载安卓开源浏览器(个人推荐yandex ...
- 详解JVM 内存结构与实战调优总结
详解JVM 内存结构与实战调优总结 GC优化案例做个总结: 1在进行GC优化之前,需要确认项目的架构和代码等已经没有优化空间.我们不能指望一个系统架构有缺陷或者代码层次优化没有穷尽的应用,通过GC优化 ...
- netcore高级知识点,内存对齐,原理与示例
最近几年一直从事物联网开发,与硬件打交道越来越多,发现越接近底层开发对性能的追求越高,毕竟硬件资源相对上层应用来实在是太缺乏了.今天想和大家一起分享关于C#中的内存对齐,希望通过理解和优化内存对齐,可 ...