Linux常⽤⽂件压缩解压命令格式⼤全(tar、gzip、bzip2、zip、compre。。。Linux常⽤⽂件压缩/解压命令格式⼤全
1. tar
打包备份后的⽂件包缀:.tar
作⽤:⽤来对系统上的⽂件作备份与恢复,可以将系统上多个⽂件组构成⼀个tar⽂件备份到磁盘内或写⼊到⼀般的⽂件(⽂件名为*.tar)上,也可以将⽂件从⼀个tar⽂件解回到原来的系统中。
说明:仅能将⼀个⽬录下的所有⽂件变成⼀个⽂件,不具备压缩功能,因此,⼀般都会将tar与gzip或bzip2⼀同使⽤。
tar的压缩语法格式:
tar –zcvf 准备压缩的⽬录或⽂件名称
常⽤选项说明:
-c 是产⽣⼀个压缩⽂件
-
z 使⽬录tar起来后再⾃动使⽤gzip把⽂件压缩起来
-j 使⽤bzip2压缩
-v 把压缩过程显⽰在屏幕上
-f 表⽰要使⽤⽂件或设备,该选项⼀般是必选的
-t, --list list the contents of an archive
例1: 将/home/xinetd.d⽬录中的所有⽂件打包成⼀个⽂件后再由gzip压缩:
tar -zcvf /home/xinetd.d/
例2 仅将/home/xinetd.d⽬录中的所有⽂件仅打包,不经过gzip压缩
tar -cvf xinet2.tar /home/xinetd.d/
tar的解压缩语法格式:
tar –zxvf (格式共3部分)
常⽤选项说明:
-x 从.⽂件中释放⽂件
-z 该参数配合参数c(产⽣压缩⽂件)使⽤是压缩,但是配合参数x使⽤是以gzip解压缩
-f 指定将tarfile这个⽂件解压缩
-j 使⽤bunzip2解压缩
例:tar –zxvf
2. gzip
压缩后的⽂件后缀:.gz
作⽤:主要⽤来压缩⽂件系统上的⽂件,以减少⽂件所占⽤的磁盘空间
当对⼀个⽂件进⾏压缩时,它会产⽣⼀个⽂件名为原始⽂件名附加”.gz”的压缩⽂件来取代原始未压缩⽂件。
压缩语法:
gzip -1 -9 -r 要压缩的⽂件名或⽬录
常⽤选项说明:
-1 表⽰快速压缩
-9 采⽤⾼压缩⽐压缩,系统默认的压缩⽐值是6
-r 采⽤递归压缩(⽤于⼀次压缩完某⼀⽬录内的所有⽂件)
例1: gzip –
例2: gzip –9 –r /home/xinetd.d/
解压缩指令:gunzip或gzip
解压缩语法:
gunzip – 或 gzip –
常⽤选项:
-
d 表⽰decompress(解压)的意思
-r 表⽰递归解压缩
例:gunzip -
3. bzip2
压缩后的⽂件后缀:.bz2
bzip2的主要优点是压缩⽐要⼤于gzip,这样就可以产⽣⽂件⼤⼩更⼩的⽂件;缺点是more CPU intensive than gzip(⽐gzip占⽤更多CPU)
压缩/解压格式:
bzip2 [选项] <⽬标⽂件>
压缩包损坏
常⽤选项说明:
-h --help print this message
-d --decompress 强制解压
-z --compress 强制压缩
-k --keep 保留(不删除)输⼊⽂件
-f --force 强制覆盖现有输出⽂件
-t --test 测试压缩⽂件完整性
-c --stdout 输出到标准输出
-q --quiet 静默抑制⾮关键错误消息
-s --small 占⽤较少的内存
-1 … -9 将块⼤⼩设置为100k…900k
–fast -1的别名
–best -9的别名
例:
#bzip2 filename 压缩⽂件,压缩后⽂件后缀为:.bz2
#bunzip2 filename.bz2 解压缩⽂件
#bzip2 -9 filename 使⽤第9级压缩⽐率(最⼤压缩⽐率)压缩⽂件
4. zip
压缩后的⽂件后缀为:.zip
⼴泛应⽤于windows操作系统中,压缩打包当前⽬录下的所有⽂件及⼦⽬录后.zip后缀会⾃动⽣成。
zip [选项] <;压缩包.zip> <;源⽂件(路径)>
常⽤选项说明:
-r 递归,将指定⽬录下的所有⽂件和⼦⽬录⼀并处理
-S 包含系统和隐藏⽂件
-y 直接保存符号连接,⽽⾮该连接所指向的⽂件
-
X 不保存额外的⽂件属性
-m 将⽂件压缩并加⼊压缩⽂件后,删除源⽂件
-<;压缩级别> 1~9,数字越⼤,压缩率越⾼
-F 尝试修复已损坏的压缩⽂件
-q 不显⽰指令执⾏过程
-g 将⽂件压缩后附加在既有的压缩⽂件之后,⽽⾮另⾏建⽴新的压缩⽂件
-u 更新压缩包内⽂件
-f 更新压缩包内⽂件。如果符合条件的⽂件没有包含在压缩包中,则压缩后添加
-i <;表达式> 压缩⽬录时,只压缩符合条件的⽂件
x <;表达式> 排除符合条件的⽂件
-n <⽂件名后缀> 排除指定⽂件名后缀的⽂件
-
d <;表达式> 从压缩⽂件内删除指定的⽂件
-t <⽇期时间> 把压缩⽂件的⽇期设成指定的⽇期
-o 以压缩⽂件内拥有最新更改时间的⽂件为准,将压缩⽂件的更改时间设成和该⽂件相同
-c 替每个被压缩的⽂件加上注释
-z 替压缩⽂件加上注释
解压格式
unzip [选项] <;压缩⽂件> [压缩包中将被释放的⽂件]
常⽤选项说明:
-d <;路径> 指定解压路径
-n 解压缩时不覆盖原有⽂件
-f 覆盖原有⽂件
-
o 不经询问,直接覆盖原有⽂件
-u 覆盖原有⽂件,并将压缩⽂件中的其他⽂件解压缩到⽬录中
-l 显⽰压缩⽂件内所包含的⽂件
-z 显⽰压缩包注释
-j 不处理压缩⽂件中原有的⽬录路径
-q 执⾏时不显⽰任何信息
-v 执⾏是时显⽰详细的信息
-x <;表达式> 排除压缩包中的指定⽂件
5. compress
压缩后的⽂件后缀为: .Z(⼤写)
作⽤:⽂件经过compress程序压缩后,会被置换产⽣⼀个.Z的⽂件,这个.Z的⽂件的拥有权关系以及修改的时间将会保留原先未压缩⽂件的设置。
压缩格式:
compress [-f][-v] ⽂件名
常⽤选项说明:
[-f] compress命令执⾏时,如果⽬的⽂件存在,将会询问⽤户是否要覆盖现有的⽂件,如果使⽤了这个选项,将会强制执⾏压缩命令,不询问⽽直接覆盖。
[-v] 显⽰每⼀个⽂件的压缩⽐率
例 :
compress –v /f
uncompress [-f][-v] ⽂件名
常⽤选项说明:
[-f] 强制输出⽂件内容,如果⽬标⽂件已经存在,直接覆盖⽂件的内容,⽽不询问⽤户
[-v] 显⽰每⼀个指定⽂件的压缩⽐率
6. cpio
作⽤:⽤来将⽂件复制到⼀个archive⽂件中,或者是从⼀个archive⽂件中复制出⽂件,⽽这些⽂件可以位于任何存储设备上(磁盘、磁带等)
cpio命令可以被区分为两种操作模式:
(1)copy-out
(2)copy-in
(1).copy-out 操作模式
作⽤:cpio的copy-out操作模式⽤来将⽂件复制到archive中
程序运⾏⽅法:
从标准输⼊中读取⼀个⽂件名清单(⼀个⽂件名独⽴⼀⾏),并将archive⽂件写⼊到标准输出。要产⽣⽂件名清单最典型的⽅法是利⽤ls、find、grep命令,并结合管道来操作。
格式:
cpio {-o|--create} [-A] <name-list> [ > archive ]
cpio -t <archive 显⽰⽣成的archive⽂档中的内容
常⽤选项说明:
{-o|–create} -o进⼊copy-out模式,-create⽣成archive⽂档
-A 附加到现存的archive内
-d, --make-directories 根据需要创建⽬录
-v, --verbose 在处理每个⽂件时,将其名称打印到stderr
-t 提供每个⽂件的详细列表。
例1: 将find的结果复制到archive⽂档document
find /tmp/samba/* | cpio –o >document
例2: 将archive⽂档document中每个⽂件分屏显⽰
cpio –t <document|more
(2).copy-in 操作模式
作⽤:cpio的copy-in操作模式⽤来将⽂件从archive中复制出来;
程序执⾏⽅法:
从标准输⼊读取archive⽂件的内容,并使⽤命令⾏中的参数作为样板
archive⽂件内只有名称⾄少符合⼀个样板的⽂件才会被复制。
格式:
cpio {-i|--extract} [pattern] [-dm] [ < archive ]
常⽤选项说明:
{-i|extract} 进⼊copy-in模式
[pattern] 样板 (注意:样板中的通⽤匹配符*,?不会匹配“.” ,但可以匹配/)
[-d] 在需要建⽴⽬录的地⽅建⽴⽬录
[-m] 在建⽴⽂件时,维持⽂件原先的修改时间
例1: 将archive⽂档中的.gif⽂件复制出来并据需要建⽴⽬录
cpio –i –d *.gif <archive
例2:将archive⽂档中的所以⽂件复制出来并据需要建⽴⽬录
cpio –i –d <archive
7.dd
作⽤:以指定的转换格式转换输⼊⽂件的内容,并将转换后的结果输出,即转换(存储格式)复制⽂件。
格式:
dd [选项]
常⽤选项说明:
1. if=file 指定输⼊源⽂件(常指定设备),如果没有指定,默认为标准输⼊
2. of=file 指定输出⽬标⽂件,如果没有指定,默认为标准输出
3. bs=bytes read and write up to BYTES bytes at a time (即⼀次读写的BYTES size,s理解为per),定义为BLOCK
4. Count=n copy only n*BLOCK input blocks(省略的话则全部读完)
· 例:dd if=/dev/fd0(软盘) of=fdimage(该⽂件名为起始地址,起始指针)
例:
dd if=FreeBSD-9.0-RELEASE-i386-memstick.img of=/dev/sdb0 bs=64k
· 注:后缀为.img的⽂件⼀般是⽤⼀个⽂件代表⼀个分区,⽐如⽤来表⽰⼀个独⽴的操作系统;苹果⼿机下载安装包更新的也是.img后缀的⽂件
实例:增加⽂件形式的交换分区
1. ⽣成256M的⽂件
dd if=/dev/zero(抹零设备) of=/swapfile1 bs=1024K count=256
2. 加强swap⽂件权限
#chown root:root /swapfile1
#chmod 0600 /swapfile1
3. 在swapfile1⽂件中创建linux swap⽂件系统
#mkswap /swapfile1 格式化成交换分区的格式
4. 使swap file⽴即⽣效
#swapon(启⽤交换分区) /swapfile1
5. 更新/etc/fstab file
# <file system> <dir> <type> <options> <dump> <pass>
/swapfile1 none(交换分区哪都不挂) swap sw 0 0
6. 在linux上显⽰交换使⽤摘要
#swapon -s
7. 关闭swap⽂件
#swapoff /swapfile1