警告
本文最后更新于 2023-10-22,文中内容可能已过时。
压缩和解压的基础概念
首先要弄清两个概念:打包和压缩。
为什么要区分这两个概念呢?
这源于 Linux 中很多压缩程序只能针对一个文件进行压缩,比如gzip
,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar
命令),然后再用压缩程序进行压缩(gzip
、bzip2
命令)。
zip
兼顾了打包和压缩的功能。
常用压缩解压缩
zip target.zip sourcefile0…
unzip -l target.zip
unzip -d 目录路径 zip文件
tar -czvf target/11.tar.gz aaa.txt bbb.txt ccc.txt
tar -xzvf target/11.tar.gz -C source
如果记不住 Linux 各种压缩格式的解压方式,建议用这个脚本放 bashrc 里,extract.sh
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#!/bin/bash
# function Extract for common file formats
function extract {
if [ -z "$1" ]; then
# display usage if no parameters given
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
else
if [ -f "$1" ] ; then
NAME=${1%.*}
#mkdir $NAME && cd $NAME
case "$1" in
*.tar.bz2) tar xvjf ./"$1" ;;
*.tar.gz) tar xvzf ./"$1" ;;
*.tar.xz) tar xvJf ./"$1" ;;
*.lzma) unlzma ./"$1" ;;
*.bz2) bunzip2 ./"$1" ;;
*.rar) unrar x -ad ./"$1" ;;
*.gz) gunzip ./"$1" ;;
*.tar) tar xvf ./"$1" ;;
*.tbz2) tar xvjf ./"$1" ;;
*.tgz) tar xvzf ./"$1" ;;
*.zip) unzip ./"$1" ;;
*.Z) uncompress ./"$1" ;;
*.7z) 7z x ./"$1" ;;
*.xz) unxz ./"$1" ;;
*.exe) cabextract ./"$1" ;;
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "'$1' - file does not exist"
fi
fi
}
|