那么,我们只需要记住下面的命令即可:
压缩:tar -cv -f filename.zip 要被压缩的文件或目录名称
解压缩:tar -xv -f filename.zip -C 欲解压的目录(这个目录必须已经存在)
注意,压缩传参顺序是压缩后的.zip文件在前,压缩前的文件在后,别搞错了 。(让人联想到gcc编译器,不过gcc传参时规定是-o output_file.out的形式来指定输出的可执行文件 , 就回避了这个顺序问题)
比如,我们要将test文件夹(该文件夹下有一个test.txt文件)压缩,可以运行如下命令:
然后将其解压到当前目录,可运行如下命令:
多个文件压缩:
然后将其解压到当前目录:
由上面所说,zip/unzip和tar都是压缩什么解压出来就是什么,原来是目录就是目录,原来没目录不会帮你自动生成一个目录,但Linux或Mac系统的可视化压缩工具就不一样了(在Mac中被称为「归档实用工具」) 。Mac中对目录压缩时压缩命令和tar命令是等效的,比如我们想用Mac自带的压缩工具压缩test文件夹:
会生成对应的归档文件:
再解压会得到同样的文件夹(会自动帮我们重命名),不会帮我们生成多余的目录:
这个文件夹内部才是我们需要的文件:
它会自动帮我们生成一个名为归档.zip的文件:
这个文件夹内部才是我们需要的文件:
这个文件夹内部才是我们需要的文件:
这在对大量文件操作时需要额外注意,否则会白白开销你一次拷贝文件的时间!
我们紧接着上面的情景 。假设我们当前的目录为项目目录,而我们手滑使用了系统自带的可视化解压工具生成了一个多余的目录 。我们接下来要把系统生成的多余的归档文件夹里的文件拷贝到当前目录,那么我们可以使用带r参数的cp命令:
这里-r参数表示递归复制命令,用于目录的递归复制 。注意命令中的归档/表示归档目录下的所有文件,意思和归档/*相同:
选项参数-r写成-R是等效的:
但如果直接传入参数归档,则表示将这个目录整个地复制:
同一个目录下不可能有两个相同名称的子目录,这当然就会出错,当然我们可以将其复制到另外一个目录里:
你可能要问,加r和不加r有啥区别?如果不加r,则默认是跳过目录的,也就是说只能copy文件:
我们还是紧接着上面的场景 。假定我们已经将归档文件夹中的test.txt、test2.txt成功拷贝到当前项目目录了 。现在我们有了个新的需求:我们在项目目录中建了一个data子目录,现在需要将项目目录中的test.txt、test2.txt移动到data子目录中 。这就需要如下命令:
注意 , 如果有多个源文件或目录,则最后一个目标文件(也就是这里的data)一定是目录。当我们只移动一个文件时,就有潜在的二义性 。这里因为data目录本身存在 , 我们移动test.txt到data目录还能正常执行:
但是如果data目录不存在,就会将mv解释为重命名的意思,比如如果我们将data目录删除再执行:
此时就等效于把test.txt更名为data文件:
可以看出,第一个字母是-,也就意味着data是普通文件,不是目录(是目录的话第一个字母是d) 。
因此,使用mv语句时要格外小心,因为它既有移动到目录的作用,也有重命名的作用,一不注意就可能出错!
有移动到目录的作用 , 也有重命名的作用,一不注意就可能出错!
就可能出错!
linux tar xz怎么解压首先 , 你的linux下要安装一个叫xz的工具 。把tar.xz,解压成为tar其次 , 再把tar文件解压出来 。
至于xz的安装不多说了 , 如果用ubuntu,看看apt-get的源里面有没有,要是fedora 、centos等等就找找yum源 。
推荐阅读
- 橙手环华为鸿蒙桌面教程,华为手环怎么调到主界面
- go语言需要学多多久,go语言难吗
- 王者张大仙直播叫什么,王者荣耀张大仙在哪里直播2020
- 本机连接虚拟机,本机连接虚拟机怎么设置
- java程序代码编辑器 java编译代码
- oracle关联主键连表查询,oracle3表关联查询
- erp系统软件有哪些品牌名称,erp系统软件有哪些品牌名称好
- 小型gis保温罩采购,保温装备
- mysql5.0怎么安装 mysql55