one_day_one_linuxCmd---tar命令
《坚持每天学习一个 linux 命令,今天我们来学习 tar 命令》
摘要:tar 命令是一个 Linux 下的打包程序,通常在 Linux 下,打包和压缩是不同的程序,打包通过 tar 程序来实现,而压缩则有不同的压缩方式,这些压缩方式由不同的程序来实现,然后我们通过 tar 命令进行打包,当然 tar 也支持在打包的同时同步调用压缩程序进行压缩,所以我们可以通过 tar 命令来实现 windows 上面的 压缩包的功能。
tar 打包
Linux 下最常用的打包程序,使用 tar 打出来的包我们称之为 tar 包,通常以 .tar 结尾,生成 .tar 包之后,我们就可以用其它的程序来进行压缩了。
#=========options================= # -c : (create)产生新的包 # -f : (file) 指定包的文件名,只能作为最后一个参数,每一个命令都有该参数 # -r : 增加文件 # -u : 更新 # -t : 列出文件 # -x : 解开 #===========example=============== # function:将所有 .txt 结尾的文件打包成一个名称为 all.tar 的包 $ tar -cf all.tar *.txt # 列出 all.tar 中所有的包 $ tar -tf all.tar # 解出 all.tar 包中所有文件 $ tar -xf all.tar
tar 压缩
我们也可以直接对单个文件进行压缩而不需要打包,因为打包和压缩是两个毫不相关的程序来实现的。
# 用 gzip 进行压缩 $ gzip t1.txt # 用 gunzip 进行解压 $ gunzip t1.txt.gz # 用 bzip2 进行压缩 $ bzip2 t1.txt # 用 bunzip2 进行解压 $ bunzip2 t1.txt.bz2
tar 打包&&压缩
为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能,就是 tar 可以在打包或解包的同时调用其它的压缩程序,比如调用 gzip、bzip2 等。
#==========options=========== # -z : 有 gzip 属性的 # -j : 有 bz2 属性的 # -v : 显示所有过程 #==========example:gzip========== # tar 调用 gzip 压缩 $ tar -czf all.tar.gz *.txt # tar 解压 .tar.gz 的压缩包 $ tar -xzf all.tar.gz #==========example:bzip2========= # tar 调用 bzip2 压缩 $ tar -cjf all.tar.bz2 # tar 解压 .tar.bz2 压缩 $ tar -xjf all.tar.bz2
windows 下的压缩文件(.zip && .rar)
Linux 下提供了 zip 和 unzip 程序,用来进行压缩和解压,这里的压缩可以对多个文件进行压缩,即执行了 Linux 下打包和压缩的功能。
# zip 实例 # 打包压缩所有以 .txt 结尾的文件,明明为 test.zip $ zip test.zip *.txt # 解压 test.zip $ unzip test.zip # test 为一个目录,目录下有 v1 、v2 两个文件 # -r : 级联打包压缩文件夹下的所有文件,如果无次选项,则解压后该文件夹为空 $ zip -r test.zip test # 解压 $ unzip test.zip
对于 .rar 文件,需要安装 RAR for Linux ,可以从网络上下载,安装完成之后就有了 rar 和 unrar 这两个程序。
# buntu 安装 rar 和 unrar $ sudo apt-get install rar unrar
# 使用 rar 进行压缩,如果为 层级目录,则自动为层级压缩 $ rar a all.rar *.txt # 使用 unrar 进行解压,如果存在层级目录,则会将目录下所有文件解压到当前目录下 $ unrar e all.rar
# 如果压缩有层级目录存在,则用 e 进行解压会将所有文件解压到当前目录下,无法位置原始的目录结构,此时可以使用 x 选项进行解压
$ unrar x all.rar
参考资料;
所有博文均为原著,如若转载,请注明出处!
分类:
Ubuntu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗