Linux(Ubuntu、CentOS、Debian、Fedora、OpenSuse、Deepin、RedHat、LinuxMint等)下常用的压缩/解压缩命令,支持压缩文件夹或文件。常用的格式有:tar
,gz
,tar.gz
,tar.bz2
,zip
等
使用 tar
命令可以压缩成tar
,tar.gz
,tar.bz2
格式
压缩:
tar -cvf 压缩包名称 带压缩文件(或目录)
# 使用示例:
tar -cvf foo.tar foo # 将foo压缩成foo.tar格式
tar -zcvf foo.tar.gz foo # 将foo压缩成foo.tar.gz格式
tar -jcvf foo.tar.bz2 foo # 将foo压缩成foo.tar.bz2格式
例如:
- 压缩/data/img
tar -cvf data.img.tar /data/img
- 压缩/data/img成tar.bz格式
tar -jcvf data.img.tar.bz2 /data/img
- 压缩/data/img成tar.gz格式
tar -zcvf data.img.tar.gz /data/img
- 压缩/data/img下所有的jpg
tar -cvf data.img.jpg.tar /data/img/*.jpg
解压缩:
tar -xvf 待解压压缩文件
例如:
- 解压data.img.tar
tar -xvf data.img.tar
- 解压data.img.tar到指定文件夹
tar -xvf data.img.tar -C /data/img_copy
- 解压/data/img成tar.bz格式
tar -jxvf data.img.tar.bz2 -C /data/img_copy
- 解压/data/img成tar.gz格式
tar -zxvf data.img.tar.gz -C /data/img_copy
常用参数:
* -c :建立一个压缩文件的参数指令
* -x :解开一个压缩文件的参数指令
* -t :查看 tarfile 里面的文件
* -z :以`gzip`格式压缩(解压)。此时推荐压缩包名称命名为 xx.tar.gz
* -j :以`bzip2`格式压缩(解压)。此时推荐压缩包名称命名为 xx.tar.bz2
* -v :压缩的过程中显示文件,压缩时输出压缩文件列表。常用,后台执行时不建议使用
* -N (yyyy/mm/dd):只压缩修改时间比指定日期新的文件
* -C :解压到指定目录
* --exclude :在压缩的过程中,排除指定文件(夹)
使用gzip
命令可以压缩成gz
,tar.gz
格式
压缩:
gzip -v 待压缩文件
比如将 foo.tar 压缩成 foo.tar.gz
gzip -v foo.tar
gzip还可以指定压缩等级:
gzip -v -1 foo.tar # 这里的 1 可以是1-9,压缩比从低到高
解压:
gzip -dv 待解压文件
比如解压 foo.tar.gz 解压 koo/ 目录下
gzip -dv foo.tar.gz > koo/foo.tar
一般情况下,如果想将文件夹压缩成gz时,则使用 tar -zxvf
命令。
使用 zip
打包成 zip
格式
压缩:
zip [选项] 压缩包名称 待压缩文件(夹)
zip -r foo.zip foo # 将foo文件夹压缩成foo.zip
zip -r koo.zip *.jpg # 将当前文件下的所有jpg文件打包到koo.zip
zip foo.tar.zip foo.tar # 将foo.tar文件打包成foo.tar.zip
zip -m foo.zip koo.txt # 将koo.txt添加到foo.zip中
zip -dv foo.zip koo.txt # 从压缩文件 oo.zip 中删除文件koo.txt
zip -P 123456 foo.zip *.png # 加密压缩,使用-P指定密码
zip也可以指定压缩等级:
zip -r -1 foo.zip foo # 这里的 1 可以是1-9,压缩比从低到高
解压
unzip [选项] 压缩包名称 [-d 指定文件夹]
unzip foo.zip # 解压foo.zip
unzip foo.zip -d foo # 将foo.zip解压到foo文件
unzip -o foo.zip -d foo # 将foo.zip解压到foo文件并覆盖已有文件
unzip -P 123456 foo.zip # zip解压缩加密压缩包文件,使用-P指定密码
常用选项:
- -m :将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中
- -d :从压缩文件内删除指定的文件
- -r :递归处理,将指定目录下的所有文件和子目录一并处理。压缩文件夹及子文件夹。
- -u :更换较新的文件到压缩文件内
- -v :显示指令执行过程或显示版本信息
- -P <密码> :zip压缩包的密码
- -d <路径> :指定解压路径
- -o :不经询问,直接覆盖原有文件
- -u :覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
- -x <表达式> :处理里排除压缩包中的指定文件
网友评论