压缩当前文件夹下所有文件,压缩为a.zip。命令行的方法是怎样。
- 常用格式:
- zip -r fileName.zip 文件夹名
(1)把/home目录下面的data目录压缩为data.zip
zip -r data.zip data #压缩data目录
(2)把/home目录下面的data.zip解压到databak目录里面
unzip data.zip -d databak
(3) 覆盖源路径解压
unzip -o healthcode-catch.zip -d disaster-recovery
(4)把/home目录下面的a文件夹和3.txt压缩成为a123.zip
zip -r a123.zip a 3.txt
(5)把/home目录下面的t.zip直接解压到/home目录里面
unzip t.zip
(6)把/home目录下面的a1.zip、a2.zip、a3.zip同时解压到/home目录里面
unzip a*.zip
(7)把/home目录下面w.zip里面的所有文件解压到第一级目录
unzip -j wt.zip
(1)tar命令格式:
- 下面五个参数是独立的,压缩解压都要用到其中一个,可以和下面的命令连用但只能用其中一个。
- -c: 建立压缩档案(创建一个新的tar文件)
- -x:解压
- -t:查看内容
- -r:向压缩归档文件末尾追加文件
- -u:更新原压缩包中的文件
-
- 下面的参数是根据需要在压缩或解压档案时可选的。
- -z:使用gzip压缩它
- -j:有bz2属性的
- -Z:有compress属性的
- -v:详细,显示要压缩或解压缩的文件
- -O:将文件解开到标准输出
-
- -p :使用原文件的原来属性(属性不会依据使用者而变)
-
- 参数-f是必须的。
- -f: 以提供的文件名作为参数创建tar文件
(2)tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。
- 常用格式:
-
- 单个文件压缩打包 tar czvf my.tar file1
-
- 多个文件压缩打包 tar czvf my.tar file1 file2,…
-
- 单个目录压缩打包 tar czvf my.tar dir1
-
- 多个目录压缩打包 tar czvf my.tar dir1 dir2
-
- 解包至当前目录:tar xzvf my.tar
- 压缩为*.tar
- tar -cvf test.tar test.txt
- *.tar解压缩
- tar -xvf test.tar
- 压缩为*.gz
- tar -zcvf test.tar.gz test.txt
- *.gz解压缩
- tar -zxvf test.tar.gz
- 压缩为*.bz2
- tar -jcvf test.tar.bz2 test.txt
- *bz2解压缩
- tar -jxvf test.tar.bz2
(1)使用tar分卷压缩
- 格式:
- tar zcvf - filedir | split -d -b 500m - filename
- 样例:
- tar zcvf - ./picture | split -d -b 500m - picture
- 将./picture打包,并切割为 500m 的包
- 输出的文件为 filename00、filename01、filename02 …
- 假设不加filename,则输出文件为 x00、x01、x02 …
- 假设不加參数 -d。则输出aa、ab、ac …
(2)解压分卷
- 首先将分卷包合并
- cat x* > myzip.tar.gz
- 然后解压
- tar zxvf myzip.tar.gz
-
- 样例:
- cat picture* > picture.tar.gz
- tar zxvf picture.tar.gz
(1)编写Linux shell 脚本完整代码如下 ——yasuo.sh
- #!/bin/bash
-
- function zipFile(){
- echo $1
- flist=`ls $1`
- cd $1
- echo $flist
- for f in $flist
- do
- if test -d $f
- then
- #echo "dir:$f"
- zip -r $f.zip $f
- fi
- done
- }
- zipFile $1
-
-
注意:
ls 获取目录下文件 到 flistflist判断是否是目录,如果是目录则进行打包操作 zip -r $f.zip $f(2)应用:
- # 修改脚本属性为 可执行
- chmod 755 yasuo.sh
-
- # 指定目录即可
- ./yasuo.sh 123/
(3)效果:

