zip包怎么解压oracle,使用jar与zip压缩解压文件的区别
使用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压缩解压文件的区别相关推荐
- java 7zip解压_Apache Commons Compress介绍-JAVA压缩解压7z文件
7zip(下面简称7z)是由Igor Pavlov所开发的一种压缩格式,主要使用的压缩算法是LZMA/LZMA2.7z是一种压缩比非常高的格式,这与其压缩算法LZMA有直接关系,所以很多大文件都是用7 ...
- java.util.zip包 OutputStream ZipOutputStream以压缩包的方式导出或下载多个文件,比如图片,文档,Excel表格等
目录 前言 逻辑流程 代码 请求接口 压缩文件方法 关闭文件流 前言 接到个需求,从数据库查询出多个用户,每个用户都会有头像,以压缩包的方式下载这些用户的头像,这里用到了java.util.zip包下 ...
- 解压命令linux tgz,linux常用压缩解压命令:tar,tgz,gzip,zip,rar
一,tar (一) tar压缩命令tar -cvf examples.tar files|dir #说明: -c, --create create a new archive 创建一个归档文件 -v ...
- python解压gz_使用python请求下载压缩tar.gz文件并使用tar解压它
我需要使用请求调用来下载tar gz文件,我发现requests.get会自动解压缩文件,我尝试使用给定的解决方案 here 但当我试图用tar解压它时,它说它不是gzip格式. 我尝试了以下方法: ...
- python递归解压文件_递归调用解压zip包或rar包
不知道有没有小伙伴跟我一样犯这样的懒,一些简单重复的工作,总是嫌麻烦,懒得一步步去做,还每次都重复一样的操作.比如解压zip或rar的包,也许你会说,不就解压嘛,有啥的.问题来了,如果只是一个简单的压 ...
- python递归解压文件_Python之路10-递归调用解压zip包或rar包
不知道有没有小伙伴跟我一样犯这样的懒,一些简单重复的工作,总是嫌麻烦,懒得一步步去做,还每次都重复一样的操作.比如解压zip或rar的包,也许你会说,不就解压嘛,有啥的.问题来了,如果只是一个简单的压 ...
- Linux压缩解压tar.gz和zip包命令汇总
1.tar包和gz包 tar包和gz包是两个不同的文件包,有三种不同后缀..tar .gz .tar.gz tar包:使用tar命令,打包文件或者文件夹,只打包,不压缩 gz包:使用gzip命令,只压 ...
- linux修改zip中文件,Linux下修改jar、zip等文件内的文件详解
Linux下修改jar.zip等文件内的文件详解 Linux下修改jar.zip等文件内的文件详解 看到很多同事在Linux环境下修改jar包内的文本文件或zip中的文本文件时,经常是先把jar包或z ...
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...
最新文章
- 题目 1470:【蓝桥杯】【入门题】【基础练习VIP】时间转换
- DL框架之MXNet :神经网络算法简介之MXNet 常见使用方法总结(神经网络DNN、CNN、RNN算法)之详细攻略(个人使用)
- Oracle 查询当前日期
- 云计算的下半场:云原生
- FileZilla Server : FTP and FTPS Server
- centos7防火墙操作
- 并发基础知识:死锁和对象监视器
- MYISAM表的.frm、MYI损坏,丢失的修复方法
- sklearn中digits手写字体数据集
- Android进阶知识(五):IPC基本概念之Binder、Binder工作机制及其原理
- 京瓷打印机m5521cdn_京瓷M5521cdn驱动-京瓷ECOSYS M5521cdn打印机驱动下载 v5.1.2106官方版--pc6下载站...
- Java中判断两个Date是否是同一天
- python中 for in 用法_python中for in的用法详解
- 计算机上机考试自我检查800字,学生检讨书800字反省自己【三篇】
- 时间戳 太平洋夏令时间和本地时间相互转换及自定义夏令时
- 砍价永远差一刀?拼多多法庭上回复:小数点后有6位......
- 【github】上有意思的深度学习项目——照片漫画风
- 端口号,一个端口号是否可以被多个进程使用?
- Apache Calcite 简介
- Hilbert曲线简单介绍及生成算法