Linux 的压缩工具用法
2015-03-30
归档工具TAR
tar由“Tape archive”衍生而来,最初被用来在磁带上归档和存储文件。通过tar归档的文件后缀名为.tar
创建归档
tar --create --verbose --file=archive.tar file1 file2 file3
或者
tar cvf archiver file1 file2 file3
列出归档内容
tar --list archive.tar
提取归档
tar xvf archive.tar
tar xvf archive.tar --wildcards '*.c' # 从归档中提取后缀名为 *.c 的文件。
对归档文件进行更新
tar uvf archive.tar newfile.c
从归档文件中删除文件 –delete
tar --delete -f archive.tar file1.c #从压缩包中删除file1.c
Gzip/Gunzip
Gzip即 GNUC zip工具,被压缩文件的后缀名是.gz
压缩文件 gzip
gzip file
通常在压缩完后回将被压缩文件删除。使用-c选项来保留。
gzip -c file > file.gz
解压缩文件 gunzip
gunzip file.gz
gunzip -c file.gz
Bzip2/Bunzip2
压缩率更大,但运行速度较gzip慢
压缩文件
每个被压缩的文件会单独被压缩
bzip2 file file1
结果
yunzhi-mac:shell yunzhi$ ls
file file1
yunzhi-mac:shell yunzhi$ bzip2 file file1
yunzhi-mac:shell yunzhi$ ls
file.bz2 file1.bz2
使用 -k选项使得压缩后保存原来的文件
bzip -k file file1
解压
-d选项被用来解压缩
bzip2 -d file.bz2
也可用 bunzip2来解压缩
bunzip2 file1.bz2
bunzip2 可以用来解压缩 bz2, bz, tbz2, tbz 的文件。
7zip
7z这种压缩格式支持高压缩比。
创建压缩文件
7z a archive.7z files
列出归档中包含的文件
7z l archive.7z
提取归档文件
7z e archive.7z
更新归档文件
7z u archive.7z newfile
从一个归档文件中删除文件
7z d archive.7z file-to-be-deleted
shell语法
变量
- shell变量的=两边不能有空格
-
一般的,变量名会在双引号中展开,单引号则不会。
yunzhi-mac:shell yunzhi$ test=good yunzhi-mac:shell yunzhi$ echo '$test'=$test $test=good
-
如果变量值存在空格或者变量值是空字符,使用引号来保护变量就很好, 变量加上引号总是没有坏处的,能规避一些错误。
good=“” if [ -n "$good" ];then echo "good is not the empty string" fi 输出为空,因为 -n "" 判断字符串是空 x="-n" y="" if [ $x = $y ];then echo "x=y" fi 结果输出:x=y 因为括号中得 $x = $y被展开为 -n = ,于是判断为真,如果加上引号,就可以避免 if [ "x" = "y" ];then echo "x=y" fi
test命令于操作符
- test operand1 operator operand2
- [ operand1 operator operand2 ]
-
operator两侧必须存在空格
yunzhi-mac:shell yunzhi$ if [ 1 = 2 ] ; then echo 1=2;fi yunzhi-mac:shell yunzhi$ if [ 1=2 ] ; then echo 1=2;fi 1=2
- -n 操作数非零长度
- -z 操作数零长度,即操作数为空