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
参考资料;
所有博文均为原著,如若转载,请注明出处!