使用jar命令压缩和解压文件不会继承原来的权限,切记!

而使用zip/unzip压缩解压文件则会保留文件原来的权限等信息,因此使用压缩解压的时候尽量使用专业的工具

下面是测试内容和结果:

1.首先确认使用zip/unzip会继承文件原来的权限

[root@localhost ~]# umask

0022

[root@localhost ~]# mkdir tst

[root@localhost ~]# touch ./tst/aaa

[root@localhost ~]# touch ./tst/bbb

[root@localhost ~]# touch ./tst/ccc

[root@localhost ~]# ls -l ./tst

total 0

-rw-r--r-- 1 root root 0 Sep 25 00:59 aaa

-rw-r--r-- 1 root root 0 Sep 25 00:59 bbb

-rw-r--r-- 1 root root 0 Sep 25 00:59 ccc

[root@localhost ~]# chmod 700 ./tst/aaa

[root@localhost ~]# chmod 777 ./tst/bbb

[root@localhost ~]# ls -l ./tst                    -----修改三个文件的权限分别是700,777,644

total 0

-rwx------ 1 root root 0 Sep 25 00:59 aaa

-rwxrwxrwx 1 root root 0 Sep 25 00:59 bbb

-rw-r--r-- 1 root root 0 Sep 25 00:59 ccc

[root@localhost ~]# zip -r tst tst                 ------使用zip压缩一个包后,将原来目录改名

adding: tst/ (stored 0%)

adding: tst/bbb (stored 0%)

adding: tst/aaa (stored 0%)

adding: tst/ccc (stored 0%)

[root@localhost ~]# ls -l

total 20

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst

-rw-r--r-- 1 root root  512 Sep 25 01:00 tst.zip

[root@localhost ~]# mv tst tst_bak

[root@localhost ~]# ls -l

total 20

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst_bak

-rw-r--r-- 1 root root  512 Sep 25 01:00 tst.zip

[root@localhost ~]# unzip tst.zip                  ------使用unzip解压压缩包,查看权限没有改变

Archive:  tst.zip

creating: tst/

extracting: tst/bbb

extracting: tst/aaa

extracting: tst/ccc

[root@localhost ~]# ls -l tst

total 0

-rwx------ 1 root root 0 Sep 25 00:59 aaa

-rwxrwxrwx 1 root root 0 Sep 25 00:59 bbb

-rw-r--r-- 1 root root 0 Sep 25 00:59 ccc

2.使用上面的实验结果,测试jar解压文件后的变化

[root@localhost ~]# ls -l

total 24

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst_bak

-rw-r--r-- 1 root root  512 Sep 25 01:00 tst.zip

[root@localhost ~]# rm -fr tst                      ------删除掉原来的tst目录,然后使用jar解压原来zip压缩的文件(注意umask为022)

[root@localhost ~]# ls -l

total 20

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst_bak

-rw-r--r-- 1 root root  512 Sep 25 01:00 tst.zip

[root@localhost ~]# ls -l /home/oracle/oracle/product/11.2.0/dbhome_1/jdk/bin/jar

-rwxr-xr-x 1 oracle dba 62492 May  6  2009 /home/oracle/oracle/product/11.2.0/dbhome_1/jdk/bin/jar

[root@localhost ~]# export PATH=$PATH:/home/oracle/oracle/product/11.2.0/dbhome_1/jdk/bin/

[root@localhost ~]# which jar

/home/oracle/oracle/product/11.2.0/dbhome_1/jdk/bin/jar

[root@localhost ~]# jar xvf tst.zip

created: tst/

extracted: tst/bbb

extracted: tst/aaa

extracted: tst/ccc

[root@localhost ~]# ls -l tst                      ------使用jar解压后,在umask为022的情况下,解压后的文件权限为644

total 0

-rw-r--r-- 1 root root 0 Sep 25 01:06 aaa

-rw-r--r-- 1 root root 0 Sep 25 01:06 bbb

-rw-r--r-- 1 root root 0 Sep 25 01:06 ccc

[root@localhost ~]# umask 0000                      ------设置umask为000后,解压后的文件权限为666

[root@localhost ~]# ls -l

total 20

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst_bak

-rw-r--r-- 1 root root  512 Sep 25 01:00 tst.zip

[root@localhost ~]# jar xvf tst.zip

created: tst/

extracted: tst/bbb

extracted: tst/aaa

extracted: tst/ccc

[root@localhost ~]# ls -l tst

total 0

-rw-rw-rw- 1 root root 0 Sep 25 01:10 aaa

-rw-rw-rw- 1 root root 0 Sep 25 01:10 bbb

-rw-rw-rw- 1 root root 0 Sep 25 01:10 ccc

[root@localhost ~]#

因此可以得出,jar解压后文件的权限与用户当前的umask有关系,而与文件在原来压缩包中的权限没有关系。不会继承原来压缩包中的权限

3.测试jar压缩的时候会不会记录文件的权限

[root@localhost ~]# rm -fr tst tst.zip    ----删除原来的文件,然后设置umask为022,使用jar压缩带权限的文件,然后使用unzip解压

[root@localhost ~]# mv tst_bak tst

[root@localhost ~]# ls -l tst

total 0

-rwx------ 1 root root 0 Sep 25 00:59 aaa

-rwxrwxrwx 1 root root 0 Sep 25 00:59 bbb

-rw-r--r-- 1 root root 0 Sep 25 00:59 ccc

[root@localhost ~]# umask 022

[root@localhost ~]# jar cvf tst.zip tst

added manifest

adding: tst/(in = 0) (out= 0)(stored 0%)

adding: tst/bbb(in = 0) (out= 0)(stored 0%)

adding: tst/aaa(in = 0) (out= 0)(stored 0%)

adding: tst/ccc(in = 0) (out= 0)(stored 0%)

[root@localhost ~]# ls -l

total 20

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst

-rw-r--r-- 1 root root  699 Sep 25 01:19 tst.zip

[root@localhost ~]# mv tst tst_bak

[root@localhost ~]# unzip tst.zip

Archive:  tst.zip

creating: META-INF/

inflating: META-INF/MANIFEST.MF

creating: tst/

extracting: tst/bbb

extracting: tst/aaa

extracting: tst/ccc

[root@localhost ~]# ls -l tst            ---可以看到,使用unzip解压后的文件权限为644

total 0

-rw-r--r-- 1 root root 0 Sep 25 00:59 aaa

-rw-r--r-- 1 root root 0 Sep 25 00:59 bbb

-rw-r--r-- 1 root root 0 Sep 25 00:59 ccc

[root@localhost ~]# rm -fr tst            ---删掉解压后的文件,设置umask为000,再解压发现解压文件的权现为666

[root@localhost ~]# ls -l

total 24

drwxr-xr-x 2 root root 4096 Jun  4 20:56 Desktop

drwxr-xr-x 2 root root 4096 Sep 25 01:19 META-INF

drwxr-xr-x 2 root root 4096 Sep 25 00:59 tst_bak

-rw-r--r-- 1 root root  699 Sep 25 01:19 tst.zip

drwxr-xr-x 7 root root 4096 Jan 22  2010 vmware-tools-distrib

[root@localhost ~]# umask 0000

[root@localhost ~]# umask

0000

[root@localhost ~]# unzip tst.zip

Archive:  tst.zip

replace META-INF/MANIFEST.MF? [y]es, [n]o, [A]ll, [N]one, [r]ename: y

inflating: META-INF/MANIFEST.MF

creating: tst/

extracting: tst/bbb

extracting: tst/aaa

extracting: tst/ccc

[root@localhost ~]# ls -l tst

total 0

-rw-rw-rw- 1 root root 0 Sep 25 00:59 aaa

-rw-rw-rw- 1 root root 0 Sep 25 00:59 bbb

-rw-rw-rw- 1 root root 0 Sep 25 00:59 ccc

[root@localhost ~]#

因此可以判断,使用jar压缩的文件,解压后与系统当前环境的umask有关系。

通过这个实验可以判断,jar压缩和解压的时候,不会记录文件的权限.建议我们在使用这些工具的时候,一定要熟悉它们的特点

zip包怎么解压oracle,使用jar与zip压缩解压文件的区别相关推荐

  1. java 7zip解压_Apache Commons Compress介绍-JAVA压缩解压7z文件

    7zip(下面简称7z)是由Igor Pavlov所开发的一种压缩格式,主要使用的压缩算法是LZMA/LZMA2.7z是一种压缩比非常高的格式,这与其压缩算法LZMA有直接关系,所以很多大文件都是用7 ...

  2. java.util.zip包 OutputStream ZipOutputStream以压缩包的方式导出或下载多个文件,比如图片,文档,Excel表格等

    目录 前言 逻辑流程 代码 请求接口 压缩文件方法 关闭文件流 前言 接到个需求,从数据库查询出多个用户,每个用户都会有头像,以压缩包的方式下载这些用户的头像,这里用到了java.util.zip包下 ...

  3. 解压命令linux tgz,linux常用压缩解压命令:tar,tgz,gzip,zip,rar

    一,tar (一) tar压缩命令tar -cvf examples.tar files|dir #说明: -c, --create  create a new archive 创建一个归档文件 -v ...

  4. python解压gz_使用python请求下载压缩tar.gz文件并使用tar解压它

    我需要使用请求调用来下载tar gz文件,我发现requests.get会自动解压缩文件,我尝试使用给定的解决方案 here 但当我试图用tar解压它时,它说它不是gzip格式. 我尝试了以下方法: ...

  5. python递归解压文件_递归调用解压zip包或rar包

    不知道有没有小伙伴跟我一样犯这样的懒,一些简单重复的工作,总是嫌麻烦,懒得一步步去做,还每次都重复一样的操作.比如解压zip或rar的包,也许你会说,不就解压嘛,有啥的.问题来了,如果只是一个简单的压 ...

  6. python递归解压文件_Python之路10-递归调用解压zip包或rar包

    不知道有没有小伙伴跟我一样犯这样的懒,一些简单重复的工作,总是嫌麻烦,懒得一步步去做,还每次都重复一样的操作.比如解压zip或rar的包,也许你会说,不就解压嘛,有啥的.问题来了,如果只是一个简单的压 ...

  7. Linux压缩解压tar.gz和zip包命令汇总

    1.tar包和gz包 tar包和gz包是两个不同的文件包,有三种不同后缀..tar .gz .tar.gz tar包:使用tar命令,打包文件或者文件夹,只打包,不压缩 gz包:使用gzip命令,只压 ...

  8. linux修改zip中文件,Linux下修改jar、zip等文件内的文件详解

    Linux下修改jar.zip等文件内的文件详解 Linux下修改jar.zip等文件内的文件详解 看到很多同事在Linux环境下修改jar包内的文本文件或zip中的文本文件时,经常是先把jar包或z ...

  9. linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...

最新文章

  1. 题目 1470:【蓝桥杯】【入门题】【基础练习VIP】时间转换
  2. DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN、CNN、RNN算法)之详细攻略(个人使用)
  3. Oracle 查询当前日期
  4. 云计算的下半场:云原生
  5. FileZilla Server : FTP and FTPS Server
  6. centos7防火墙操作
  7. 并发基础知识:死锁和对象监视器
  8. MYISAM表的.frm、MYI损坏,丢失的修复方法
  9. sklearn中digits手写字体数据集
  10. Android进阶知识(五):IPC基本概念之Binder、Binder工作机制及其原理
  11. 京瓷打印机m5521cdn_京瓷M5521cdn驱动-京瓷ECOSYS M5521cdn打印机驱动下载 v5.1.2106官方版--pc6下载站...
  12. Java中判断两个Date是否是同一天
  13. python中 for in 用法_python中for in的用法详解
  14. 计算机上机考试自我检查800字,学生检讨书800字反省自己【三篇】
  15. 时间戳 太平洋夏令时间和本地时间相互转换及自定义夏令时
  16. 砍价永远差一刀?拼多多法庭上回复:小数点后有6位......
  17. 【github】上有意思的深度学习项目——照片漫画风
  18. 端口号,一个端口号是否可以被多个进程使用?
  19. Apache Calcite 简介
  20. Hilbert曲线简单介绍及生成算法

热门文章

  1. STM32G431控制窗帘电机-窗帘电机拆机
  2. 使用GIS空间分析进行植物生长区域选址(附练习数据下载)
  3. navicat premium 15 下载安装详细教程
  4. HTML PDF 查看器--RAD PDF 3.33 FOR ASP.NET
  5. 数据分析基础之matplotlib绘制散点图
  6. 2020 CSP-J2题目
  7. Android中屏蔽有新短信时通知栏里的通知
  8. Python WindowsError
  9. c#文件名去掉后缀_C#如何从文件路径中分离出文件名以及文件扩展名
  10. 《神魔之塔》高傲女巫的化身「恶龙之怒 地狱级」通关