记录 linux 下常用的压缩文件解压指令
持续更新 ......
1. tar 指令
Examples:
- tar -cf archive.tar foo bar (对文件 foo 和 bar 压缩,创建 archive.tar 压缩包)
- tar -tvf archive.tar (列出压缩包中的所有文件)
- tar -xf archive.tar (解压出 archive.tar 中的所有文件)
- tar -xvf filename.tar (解压 filename.tar 并 列出压缩包中的所有文件)
- tar -zxvf filename.tar.gz
- tar -zxvf filename.tgz
主操作模式:
-A, --catenate, --concatenate 追加 tar 文件至归档
-c, --create 创建一个新归档
--delete 从归档(非磁带!)中删除
-d, --diff, --compare 找出归档和文件系统的差异
-r, --append 追加文件至归档结尾
--test-label 测试归档卷标并退出
-t, --list 列出归档内容
-u, --update 仅追加比归档中副本更新的文件
-x, --extract, --get 从归档中解出文件
其他常用:
-v, --verbose 详细地列出处理的文件,显示所有过程
-f, --file=ARCHIVE 使用归档文件或 ARCHIVE 设备
切记,这个参数是最后一个参数,后面只能接档案名
必选
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
-j, --bzip2 通过 bzip2 过滤归档
-Z, --compress, --uncompress 通过 compress 过滤归档
压缩并分片:
大文件拆分:先压缩,再拆分成指定大小
# 压缩
tar -zcvf filename.tar.gz filenam
# 切分
split -b 4000M -d -a 1 filename.tar.gz filename.tar.gz.
cat filename.tar.gz ' split -b 4000M -d -a 1 filename.tar.gz.
切分的参数说明:
-b 4000M 表示设置每个分割包的大小,单位还是可以k
-d 参数指定生成的分割包后缀为数字的形式
-a x来设定序列的长度(默认值是2),这里设定序列的长度为1
将切分的文件合并:
tar -zcvf filename.tar.gz filename ' split -b 4000M -d -a 1 -filename.tar.gz.
多个压缩文件解压方法:
cat filename.tar.gz.* ' tar -zxv
2. rar unrar 指令
Examples:
- unrar e filename.rar # 解压到当前目录
- unrar x filename.rar /path/to/extract
3. zip unzip 指令
Examples:
- zip filename.zip filename (压缩 filename)
- zip -r location.zip location (递归压缩目录 location)
- unzip filename.zip -d filepath (解压缩)
常用:
- 压缩:
# 指令
zip passwd.zip /etc/passwd
# 输出
adding: etc/passwd (deflated 58%)
输出中,58% 表示压缩率,即压缩后的文件大小为源文件的 42%
- 加密压缩:
# 指令
zip -e passwd.zip /etc/passwd
# 输出
Enter password:
Verify password:
adding: etc/passwd (deflated 58%)
- 递归压缩
# 指令
zip -r shell.zip shell
# 输出
adding: shell/ (stored 0%)
adding: shell/sleepParent.sh (stored 0%)
adding: shell/sleep.sh (deflated 22%)
adding: shell/dir/ (stored 0%)
adding: shell/dir/test.sh (stored 0%)
参考:
https://blog.csdn.net/K346K346/article/details/103230736
https://blog.csdn.net/zong596568821xp/article/details/106024351