1、linux zip压缩
压缩当前文件夹下所有文件,压缩为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
2、linux tar压缩
(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
3、分卷压缩
(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
4、Linux脚本——把指定目录下的所有目录(文件夹)分别单独打包
(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
获取目录下文件 到flist
- 遍历
flist
判断是否是目录,如果是目录则进行打包操作zip -r $f.zip $f
(2)应用:
# 修改脚本属性为 可执行
chmod 755 yasuo.sh
# 指定目录即可
./yasuo.sh 123/
(3)效果: