Linux tar压缩与解压
tar命令是系统自带的压缩与解压工具。
tar命令可将文件与文件夹压缩为.tar压缩文件,以及解压。
1 语法
tar [选项] 文件
2 常用选项
选项 | 作用 |
---|---|
-c | create,创建tar压缩文件 |
-x | extract,解压文件 |
-f | file,指定压缩文件名称 |
-v | verbose,显示运行详情 |
-C | 指定当前目录 |
3 压缩示例
准备数据:
创建文件夹/xt1/sub2/sub3/sub4
sub3中创建文件file1.txt,file2.txt,file3.txt
mkdir -p /xt1/sub2/sub3/sub4
cd /xt1/sub2/sub3
touch file1.txt file2.txt file3.txt
ls /xt1/sub2/sub3
例1:将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中
准备文件夹/xt1_bak
mkdir /xt1_bak
压缩
tar -cvf /xt1_bak/xt1.tar /xt1/sub2/sub3
下载xt1.tar用解压软件打开
压缩文件中带子原目录的层级结构 xt1/sub2/sub3。通常我们只需要sub3,或者一级都不要。
两种解决方法:
1)cd 命令切换当前目录到要相应目录
2)-C选项指定压缩的当前目录
第1种方法更麻烦,但更灵活,推荐使用。
例2:将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中,压缩文件中无xt1到sub3的各级文件夹。
解压
cd /xt1/sub2/sub3
tar -cvf /xt1_bak/xt1.tar *
查看解压文件
压缩包中直接存放file1.txt等文件。
例3:将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中,压缩文件中只保留最后一级文件夹。
cd /xt1/sub2
tar -cvf /xt1_bak/xt1.tar sub3
查看压缩文件
例4:通过-C将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中,压缩文件中只保留最后一级文件夹。
切回用户主目录
cd
压缩
tar -cvf /xt1_bak/xt1.tar -C /xt1/sub2 sub3
注意事项:sub2与sub3有空格。即-C指定压缩的当前路径是/xt1/sub2,压缩文件夹是sub3。
4 解压示例
例1:将/xt1_bak/xt1.tar中的内容解压到/xt2中。
mkdir /xt2
解压
tar -xvf /xt1_bak/xt1.tar -C /xt2