• 文件管理后章


    六、文件管理之:打包压缩

    
    1.什么是打包压缩:
      打包指的是将多个文件和目录合并为一个特殊文件,然后将该特殊文件进行压缩,最终得到一个压缩包.
    
    2.为什么使用压缩包:
         1.减少占用的体积
         2.加快网络的传输
    
    3.Windows的压缩和Linux的有什么不同windows: zip rar(linux不支持)
    linux: zip tar.gz tar.bz2 .gz
    如果希望windows的软件能被linux解压,或者linux的软件包被windows能识别,选择zip.
    PS:压缩包的后缀不重要,但一定要携带.
    
    4.Linux下常见的压缩包类型
    
    格式	                  压缩工具
    .zip	       zip压缩工具
    .gz	       gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    .bz2	       bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    .tar.gz	       先使用tar命令归档打包,然后使用gzip压缩
    .tar.bz2       先使用tar命令归档打包,然后使用bzip压缩
    
    
    5、打包压缩方法
    方法一:
    #1、打包
    [root@localhost test]# tar cvf etc_bak.tar /etc/ # c创建 v详细 f打包后文件路径 ps:
         打包的目标路径如果是绝对路径,会提示:tar:从成员名中删除开头的,不影响打包
    添加-P选项便不再提示:tar cvPf ...
    可以cd到/etc下然后tar cvf etc_bak.tar *打包,这样去掉了一层文件夹
    #2、压缩
    [root@localhost test]# gzip etc_bak.tar # 文件体积变小,并且加上后缀.gz
    ps:
    gzip -> gunzip
    bzip2-> bunzip2
    #3、上述两步可以合二为一
    [root@localhost test]# tar czvf etc1_bak.tar.gz /etc/ # 选项 z 代表 gzip 压缩算法
    [root@localhost test]# tar cjvf etc1_bak.tar.bz2 /etc/ # 选项 j 代表 bzip2 压缩算法
    
    方法二:
    [rootmlocalhost ~]# zip /test/bak.zip  a.txt  b.txt  c.txt # zip后的第一个参数是压缩包路径, 其余为被压缩的文件
    adding: a.txt  (stored 0%)
    adding: b.txt  (stored 0%)
    adding: c.txt  (stored 0%)
    [rootmlocalhost ~]# ls /test/
    bak.zip
    
    6、解压缩
    #1、针对 xxx.tar.gz 或者 xxx.tar.bz2,统一使用
    [root@localhost test]# tar xvf压缩包 -C 解压到的目录 #无需指定解压算法,tar会自动判断
    #2、针对 xxx.zip
    [root@localhost test]# unzip xxx.zip
    
    7、拓展
    打包压缩通常用于备份文件,文件的名字必须见名知意且应该带上时间、主机名之类
    时间命令date
    选项
    -d     #根据你的描述显示日期
    -s     #修改日期
    %H     #小时,24小时制(00~23)
    %M     #分钟(00~59)
    %s     #从1970年1月1日00:00:00:00到目前经历的秒数
    %S     #显示秒数(00~59)
    %T     #显示时间,24小时制(hh:mm:ss)
    %d     #一个月的第几天(01~31)
    %j     #一年的第几天(001~366)
    %m     #月份(01~12)
    %w     #一个星期的第几天(0代表星期天)
    %W     #一年的第几个星期(00~53,星期一为第一天)
    %y     #年的最后两位数字(2020则为20)
    %Y     #年,实际
    %F     #显示日期(%Y-%m-%d)
    
    示例
    命令# date
    2020年 08月 12 日 星期三 20:55:48 CST
    命令# date +%F
    2020-08-l2
    命令# date +%y-%m-%d
    2020-08-l2
    命令# date +%y-%m-%d
    20-08-l2
    命令# date +%T
    00:0l:03
    命令# date +%H:%M:%S
    00:0l:ll
    命令# date +%w
    3			
    命令# date +%s
    l597236988
    命令# date +%d
    l2			
    命令# date +%w
    32			
    命令# date +%j
    225
    命令# date -d "-l day " +%F
    2020-08-ll
    命令# date -d "l day " +%F
    2020-08-l3	
    命令# date -d "+l day " +%F
    2020-08-l3	
    命令# date -d "3 years " +%F
    2023-08-l2
    命令# date -d "+3 years " +%F
    2023-08-l2
    命令# date -d "+3 hours " +%F %H:%M:%S
    2020-08-l2_23:58:06
    命令# date -s 2020llll
    2020年 ll月 ll日 星期三 00:00:00 CST
    命令# date -s ll:ll:ll
    202 0年 ll月 ll日 星期三 ll:ll:ll CST
    命令# date -s " 2020llll ll:ll:ll "
    2020年 ll月 ll日 星期三 ll:ll:ll CST
    命令# date +%F
    2020-ll-ll
    命令# date +%T
    ll:ll:29
    ٚ再看备份
    命令# tar czvf `date +%F`_bak.tar.gz /etc
    命令# tar czvf `date +%F_%H_%M_%S`_bak.tar.gz /etc # 如果带有时分秒,不要用冒号分隔,因为文件名的命名里不能带有冒号
    
    
    
  • 相关阅读:
    JavaWeb学习总结(十三)——使用Session防止表单重复提交
    JavaWeb学习总结(十二)——Session
    eclipse中复制servlet导致tomcat启动不了的问题
    javaweb学习总结(十一)——使用Cookie进行会话管理
    EL表达式
    request.getParameter() 和request.getAttribute() 区别
    javaweb学习总结(十)——HttpServletRequest对象(一)
    javaweb学习总结(九)—— 通过Servlet生成验证码图片
    javaweb学习总结(八)——HttpServletResponse对象(二)
    javaweb学习总结(七)——HttpServletResponse对象(一)
  • 原文地址:https://www.cnblogs.com/qiukangle/p/13955971.html
Copyright © 2020-2023  润新知