前言

tar打包对于服务器端运维来说是个非常重要的命令,因为很多数据备份都需要先打包,然后在scp或者rsync传送,这里介绍tar的基本命令,方便自己回顾
 

man tar

linux下学习什么命令都需要先man一下,只有好处没有坏处!
linux下tar命令_解压缩
 

选项

  • -c : 建立新的归档文件
  • -x :  从归档文件中解出文件
  • -v :  处理过程中输出相关信息
  • -z :  调用gzip来压缩归档,与-x连用时调用gzip完成解压缩
  • -f  :  use archive file or device ARCHIVE
  • -C :  change to directory DIR,解压时用于指定解压目录
 

示例

 
(1)压缩文件
 
linux下tar命令_文件名_02
 
(2)指定目录,解压缩
 
linux下tar命令_后缀名_03
 
 
 

tar与openssl加密解密打包文件

很多时候我们可能需要将压缩后文件上传到云主机服务器,这时就涉及到隐私问题,需要加密传输了,tar和openssl的结合可以帮我们解决这个问题
 
当前目录下有个code.c文件:
 
linux下tar命令_后缀名_04
 

tar对文件加密

tar -czf - code.c | openssl des3 -salt -k password | dd of=code.des3

code.c:替换你需要压缩的文件名或目录名
password:替换为你需要设置的密码

图示:
 
linux下tar命令_后缀名_05
 
得到一个code.des3的打包文件,打包密码为password
 

tar对加密文件解压

dd if=code.des3 | openssl des3 -d -k password | tar -zxf  - -C ./

图示:
 
linux下tar命令_文件名_06
 
 

tar和split分割打包文件

有时候就算用到tar压缩,可能压缩后的文件还是会很大,例如几百m等等,碰上对单个文件有大小限制的系统,就需要对tar打包后的文件进行分割,切分成合适的大小。例如,我在用有拍云做云存储的时候,发现它对单个文件有大小不超过100m的限制,而我的上传文件的平均大小为150m左右,这时我就需要用到sqlit做分割
 
图示,限制压缩文件最大为20m
 
linux下tar命令_hive_07
 
 

split用法

主要参数:
 
-b:SIZE 指定每个文件的大小,其单位可以为b(512字节)、k(1K)、m(1M) 
-d:使用数字而不是字母作为后缀名 
-a:指定后缀名的长度,默认为2位 

命令:
split -b 20m -a 2 movie.tar.gz movie.tar.gz.

注意:
文件名后面我加了一个“.”,方便做区分,还是很有好处的
 
截图:
linux下tar命令_hive_08
 
恢复:
cat命令即可,不做讲解了,和tar合用时采用管道符