short for | : | tape archiver |
是什么 ? | : | a utility to create tar archives, as well as various other kinds of manipulation. tar archives were used to store files conveniently on magnetic tape. |
开发语言 | : | C |
开发组织 | : | GNU |
官方主页 | : | https://www.gnu.org/software/tar |
操作系统 | 包管理器 | 安装命令 |
---|---|---|
Windows | scoop | scoop install tar |
macOS | HomeBrew | brew install gnu-tar |
GNU/Linux | HomeBrew | brew install gnu-tar |
apt | sudo apt-get install -y tar | |
CentOS | yum | sudo yum install -y tar |
dnf | sudo dnf install -y tar | |
openSUSE | zypper | sudo zypper install -y tar |
Alpine Linux | apk | sudo apk add tar |
pacman | sudo pacman -Syyu --noconfirm | |
Gentoo Linux | Portage | sudo emerge tar |
tar
命令的使用格式:
tar --help
tar [option]... [FILE]...
option | 说明 |
---|---|
-x | 解压压缩包 |
-c | 创建压缩包 |
-t | 列出压缩包里的内容 |
-v | 打印详细日志 |
-f <FILE> | 指定要解压的文件 或要压缩成的文件 |
-C <DIR> | 指定解压到的文件夹 |
--strip-components=N | 假如压缩包里有几层文件夹,而你想跳过前面某几层 |
-z | 依赖gzip,处理.gz 、.tgz 格式的文件 |
-j | 依赖bzip2,处理.bz2 格式的文件 |
-J | 依赖xz,处理.xz 格式的文件 |
--lzma | 依赖xz,处理.lzma 格式的文件 |
示例:
tar -tf apache-tomcat-8.5.9.tar.gz
运行效果如下:
执行这个命令的目的是检查tar
文件是否是完整的,如果不是完整的,就没必要解压了。
if tar -tf apache-tomcat-8.5.9.tar.gz &> /dev/null; then
tar zvxf apache-tomcat-8.5.9.tar.gz -C ~/bin
else
echo "need to download"
fi
从上面的结果我们知道:apache-tomcat-8.5.9.tar.gz
文件中第一层就是一个文件夹, 我们想要知道这个文件夹的名称,我们有下面这三种办法:
方法1:
tar -tf apache-tomcat-8.5.9.tar.gz | awk -F "/" '{print $1}' | sort | uniq
方法2:
tar -tf apache-tomcat-8.5.9.tar.gz | awk -F "/" '{print $1}' | tail -n 1
方法3:
tar -tf apache-tomcat-8.5.9.tar.gz | awk -F "/" '{print $1}' | sed -n '1p'
解压.tar.gz
或者.tgz
文件:
tar vxf apache-tomcat-8.5.9.tar.gz -C ~/bin
解压.tar.bz2
文件:
tar vxf sublime_text_3_build_3126_x64.tar.bz2 -C ~/bin
解压.tar.xz
文件:
tar vxf bash-4.3.tar.xz -C ~/bin