linux命令压缩和移动 linux移动压缩包

linux压缩命令有什么 linux压缩命令介绍1、gzip: 压缩后的文件后缀为.gz 。用法:gzip 文件路径 ,压缩完成后会删除原文件 。
2、bzip2:压缩后的文件后缀为.bz2.(比gzip有着更大压缩比的压缩工具 , 受用格式与其相似 。)-k:压缩或者解压时可以保留原文件 。
3、zip: 既归档又压缩的工具,可以压缩目录,以上三个不能,默认不删除原文件 。
4、tar: 归档工具,也是很好的备份工具,后缀名为.tar.gz 。
linux下如何解压和压缩文件使用快捷键Ctrl Alt T打开Linux的命令行窗口
然后输入解压命令即可,命令总结如下:
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统 。它能运行主要的UNIX工具软件、应用程序和网络协议 。它支持32位和64位硬件 。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统 。
Linux:文件解压、复制和移动的若干坑Linux下进行文件的解压、复制、移动应该是最常见的操作了 。尤其是我们在项目中使用大量的数据集文件(比如机器学习)文件 。然而使用这些命令时一不留神就会掉进坑里,这篇文章我们就来细数用Shell进行文件操作的这些坑 。
Linux下压缩文件的常见扩展名包括.gz,.tar , .tar.gz,.zip等 。这些压缩格式都能够跨平台(Windows/Mac/Linux)使用 。下面我们以.zip文件为例子来讲解 。我们已知一个文本文件压缩包test.zip , 想把它解压,很简单,运行unzip命令即可:
如果我们想要将test.txt重新压缩呢?你可能情不自禁会执行zip test.txt,然后我们发现提示:
其实是传参数传错了,导致zip误把test.txt当成压缩后的文件名了,这当然不是合法的 。我们看zip的参数构成:
[-b path]是压缩后的.zip文件的路径,zipfile list是待压缩的文件列表 。于是,我们这样写即可成功压缩:
当然,zip也支持将多个文件压缩:
此时我们发现再解压test3.zip会发现重新得到了两个原始文件:
zip也支持对目录压缩 , 如我们尝试压缩test目录:
此时再解压test4.zip则会重新生成test目录:
不过 , zip是将输入的文件列表 分别 进行压缩的操作,即是对目录来进行压缩也是对目录内的所有文件one-by-one的操作 。那我们需要将很多文件先打包成一个文件,然后再压缩呢?此时就要用到tar了 。
很多人误解tar是个压缩命令,其实压缩命令是gzip、xz以及我们上文提到的zip这些 。tar是个打包命令,只不过附带压缩与解压的功能 。tar的选项多如牛毛,为了减轻大家的记忆负担,我们只介绍下面两个选项:
-c: 建立打包文件(可搭配-v将过程中打包的文件可视化);
-x:解包或解压缩的功能(可搭配-C在特定目录解压);
(其实还有表示通过gzip进行压缩/解压缩的-z,通过bzip2的支持进行压缩/解压缩的-j,通过xz的支持进行压缩解压缩的-J等,但我们这里统一用.zip示范,就省去这些参数了)
那么,我们只需要记住下面的命令即可:
压缩: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命令压缩和移动 linux移动压缩包】关于linux命令压缩和移动和linux移动压缩包的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读