tar 本身就是一个打包工具,可以把目录打包成一个文件,它把所有文件整合成一个大文件,方便复制或者移动
属性 | 含义 |
---|---|
-z | 表示同时用gzip压缩 |
-j | 表示同时用bzip2压缩 |
-J | 表示同时用xz压缩 |
-x | 表示解包或者解压缩 |
-t | 表示查看tar包里的文件 |
-c | 表示建立一个tar包或者压缩文件包 |
-v | 表示可视化 |
-f | 后面跟文件名 |
-p | 表示使用原文件的属性,压缩前什么属性压缩后还什么属性(不常用) |
-P | 表示使用原文件的属性,压缩前什么属性压缩后还是什么属性(不常用) |
--exclude filename | 表示在打包或压缩时,不要将filename文件包括在内(不常用) |
tar 打包整个目录
[root@evan-01 evan1]# ll
total 205612
-rw-r--r--. 1 root root 209715200 Aug 21 14:30 big2.txt
-rw-r--r--. 1 root root 203695 Aug 22 17:18 big2.txt.zip
-rw-r--r--. 1 root root 209715200 Aug 21 14:52 big3.txt
-rw-r--r--. 1 root root 611377 Aug 22 17:45 big3.zip
-rw-r--r--. 1 root root 209715200 Aug 22 17:07 big4.txt
-rw-r--r--. 1 root root 177 Aug 21 11:50 big.txt.bz2
drwxr-xr-x. 3 root root 33 Aug 22 17:48 testdir
drwxr-xr-x. 3 root root 37 Aug 22 17:54 testdir2
[root@evan-01 evan1]# tar -cvf testdir.tar testdir
testdir/
testdir/one/
testdir/one/big3.txt
testdir/big4.txt
[root@evan-01 evan1]# ll
total 615224
-rw-r--r--. 1 root root 209715200 Aug 21 14:30 big2.txt
-rw-r--r--. 1 root root 203695 Aug 22 17:18 big2.txt.zip
-rw-r--r--. 1 root root 209715200 Aug 21 14:52 big3.txt
-rw-r--r--. 1 root root 611377 Aug 22 17:45 big3.zip
-rw-r--r--. 1 root root 209715200 Aug 22 17:07 big4.txt
-rw-r--r--. 1 root root 177 Aug 21 11:50 big.txt.bz2
drwxr-xr-x. 3 root root 33 Aug 22 17:48 testdir
drwxr-xr-x. 3 root root 37 Aug 22 17:54 testdir2
-rw-r--r--. 1 root root 419440640 Sep 4 15:06 testdir.tar
[root@evan-01 evan1]#
打包目录和文件
[root@evan-01 evan1]# ll
total 615224
-rw-r--r--. 1 root root 209715200 Aug 21 14:30 big2.txt
-rw-r--r--. 1 root root 203695 Aug 22 17:18 big2.txt.zip
-rw-r--r--. 1 root root 209715200 Aug 21 14:52 big3.txt
-rw-r--r--. 1 root root 611377 Aug 22 17:45 big3.zip
-rw-r--r--. 1 root root 209715200 Aug 22 17:07 big4.txt
-rw-r--r--. 1 root root 177 Aug 21 11:50 big.txt.bz2
drwxr-xr-x. 3 root root 33 Aug 22 17:48 testdir
drwxr-xr-x. 3 root root 37 Aug 22 17:54 testdir2
-rw-r--r--. 1 root root 419440640 Sep 4 15:06 testdir.tar
[root@evan-01 evan1]# tar -cvf testdir.tar testdir big2.txt big3.txt
testdir/
testdir/one/
testdir/one/big3.txt
testdir/big4.txt
big2.txt
big3.txt
[root@evan-01 evan1]# ll
total 1024824
-rw-r--r--. 1 root root 209715200 Aug 21 14:30 big2.txt
-rw-r--r--. 1 root root 203695 Aug 22 17:18 big2.txt.zip
-rw-r--r--. 1 root root 209715200 Aug 21 14:52 big3.txt
-rw-r--r--. 1 root root 611377 Aug 22 17:45 big3.zip
-rw-r--r--. 1 root root 209715200 Aug 22 17:07 big4.txt
-rw-r--r--. 1 root root 177 Aug 21 11:50 big.txt.bz2
drwxr-xr-x. 3 root root 33 Aug 22 17:48 testdir
drwxr-xr-x. 3 root root 37 Aug 22 17:54 testdir2
-rw-r--r--. 1 root root 838871040 Sep 4 15:10 testdir.tar
[root@evan-01 evan1]#
解包
[root@evan-01 evan1]# ll
total 1024824
-rw-r--r--. 1 root root 209715200 Aug 21 14:30 big2.txt
-rw-r--r--. 1 root root 203695 Aug 22 17:18 big2.txt.zip
-rw-r--r--. 1 root root 209715200 Aug 21 14:52 big3.txt
-rw-r--r--. 1 root root 611377 Aug 22 17:45 big3.zip
-rw-r--r--. 1 root root 209715200 Aug 22 17:07 big4.txt
-rw-r--r--. 1 root root 177 Aug 21 11:50 big.txt.bz2
drwxr-xr-x. 3 root root 33 Aug 22 17:48 testdir
drwxr-xr-x. 3 root root 37 Aug 22 17:54 testdir2
-rw-r--r--. 1 root root 838871040 Sep 4 15:10 testdir.tar
[root@evan-01 evan1]# tar xvf testdir.tar
testdir/
testdir/one/
testdir/one/big3.txt
testdir/big4.txt
big2.txt
big3.txt
[root@evan-01 evan1]#
查看包里面的内容
[root@evan-01 evan1]# tar -tf testdir.tar
testdir/
testdir/one/
testdir/one/big3.txt
testdir/big4.txt
big2.txt
big3.txt
[root@evan-01 evan1]#
打包时过滤掉不想打进来的文件
过滤一个文件
[root@evan-01 evan1]# tree testdir
testdir
├── big4.txt
└── one
└── big3.txt
1 directory, 2 files
[root@evan-01 evan1]# tar -cvf testdir.tar --exclude big3.txt testdir big2.txt
testdir/
testdir/one/
testdir/big4.txt
big2.txt
[root@evan-01 evan1]#
过滤多个文件
[root@evan-01 evan1]# tree testdir
testdir
├── big4.txt
└── one
└── big3.txt
1 directory, 2 files
[root@evan-01 evan1]# tar -cvf testdir.tar --exclude big3.txt --exclude big4.txt testdir big2.txt
testdir/
testdir/one/
big2.txt
[root@evan-01 evan1]#
指定文件类型过滤
[root@evan-01 evan1]# tree testdir
testdir
├── big4.txt
└── one
└── big3.txt
1 directory, 2 files
[root@evan-01 evan1]# tar -cvf testdir.tar --exclude "*.txt" testdir big2.txt
testdir/
testdir/one/
[root@evan-01 evan1]#