前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux tar exclude参数的用法

Linux tar exclude参数的用法

作者头像
Leshami
发布2018-08-13 15:22:17
1.3K0
发布2018-08-13 15:22:17
举报
文章被收录于专栏:乐沙弥的世界乐沙弥的世界

      最近在对Oracle 数据库使用冷备tar迁移时,遇到需要将当前数据库文件下下的datapump导出的文件过滤掉,要不然然会产生很大的tar文件以及耗用网络传输时间。其实tar命令为我们提供了过滤功能,只不过由于过滤功能通常使用的比较少,所以很多人不知道。本文描述了tar命令下如何过滤不需要的文件或文件夹。

1、演示环境

代码语言:javascript
复制
#当前的tree 目录下存在BBB,CCC以及BNR子目录,现在需要将gz的dump文件过滤掉,也就是不参与打包
[oracle@linux1 ~]$ tree AAA
AAA
|-- BBB
|   `-- SYTST_temp.dbf
|-- BNR
|   |-- dump
|   |   |-- emp.dmp.gz
|   |   |-- tb.dmp.gz
|   |   `-- xx.dmp.gz
|   `-- full
|-- CCC
|   `-- tempSYTST.dbf
|-- SYTST.sh
`-- initSYTST.ora

5 directories, 7 files

2、演示如何进行过滤

代码语言:javascript
复制
#方法一,下面通过exclude参数进行过滤,使用通配符
[oracle@linux1 ~]$ tar -czvf A1.tar.gz --exclude '*.gz' ./AAA  
./AAA/
./AAA/CCC/
./AAA/CCC/tempSYTST.dbf
./AAA/BBB/
./AAA/BBB/SYTST_temp.dbf
./AAA/SYTST.sh
./AAA/initSYTST.ora
./AAA/BNR/
./AAA/BNR/full/
./AAA/BNR/dump/

#查看包中的内容,没有任何gz文件
[oracle@linux1 ~]$ tar -tvf A1.tar.gz
drwxr-xr-x oracle/oinstall   0 2013-12-13 14:10:43 ./AAA/
drwxr-xr-x oracle/oinstall   0 2013-12-13 14:12:18 ./AAA/CCC/
-rwxr-xr-x oracle/oinstall 209723392 2013-12-13 14:12:19 ./AAA/CCC/tempSYTST.dbf
drwxr-xr-x oracle/oinstall         0 2013-12-13 14:11:56 ./AAA/BBB/
-rwxr-xr-x oracle/oinstall 104865792 2013-12-13 14:11:56 ./AAA/BBB/SYTST_temp.dbf
-rwxr-xr-x oracle/oinstall      1281 2013-12-13 14:10:43 ./AAA/SYTST.sh
-rwxr-xr-x oracle/oinstall      2949 2013-12-13 14:10:31 ./AAA/initSYTST.ora
drwxr-xr-x oracle/oinstall         0 2013-12-13 14:11:12 ./AAA/BNR/
drwxr-xr-x oracle/oinstall         0 2013-12-13 14:11:12 ./AAA/BNR/full/
drwxr-xr-x oracle/oinstall         0 2013-12-13 14:11:04 ./AAA/BNR/dump/

#方法二,下面通过使用多个exclude参数进行过滤
[oracle@linux1 ~]$ tar -czvf A2.tar.gz --exclude='tempSYTST.dbf' --exclude=SYTST_temp.dbf ./AAA      
./AAA/
./AAA/CCC/
./AAA/BBB/
./AAA/SYTST.sh
./AAA/initSYTST.ora
./AAA/BNR/
./AAA/BNR/full/
./AAA/BNR/dump/
./AAA/BNR/dump/xx.dmp.gz
./AAA/BNR/dump/tb.dmp.gz
./AAA/BNR/dump/emp.dmp.gz

#方法三,借助于exclude参数,直接将需要过滤得文件添加到文件,然后再从文件读取
[oracle@linux1 ~]$ echo "*.dbf" >>exclude.txt
[oracle@linux1 ~]$ echo "*.gz" >>exclude.txt
[oracle@linux1 ~]$ more exclude.txt
*.dbf
*.gz
[oracle@linux1 ~]$ tar -czvf A3.tar.gz --exclude-from=exclude.txt ./AAA
./AAA/
./AAA/CCC/
./AAA/BBB/
./AAA/SYTST.sh
./AAA/initSYTST.ora
./AAA/BNR/
./AAA/BNR/full/
./AAA/BNR/dump/

#方法四,借助于exclude参数,可以直接使用目录加通配符的方式来过滤指定文件夹下的所有文件
[oracle@linux1 ~]$ tar -czvf A4.tar.gz --exclude=./AAA/BNR/dump/* ./AAA
./AAA/
./AAA/CCC/
./AAA/CCC/tempSYTST.dbf
./AAA/BBB/
./AAA/BBB/SYTST_temp.dbf
./AAA/SYTST.sh
./AAA/initSYTST.ora
./AAA/BNR/
./AAA/BNR/full/
./AAA/BNR/dump/

#方法五,借助于exclude参数,直接使用目录方式来过滤
[oracle@linux1 ~]$ tar -czvf A4.tar.gz --exclude=./AAA/BNR ./AAA       
./AAA/
./AAA/CCC/
./AAA/CCC/tempSYTST.dbf
./AAA/BBB/
./AAA/BBB/SYTST_temp.dbf
./AAA/SYTST.sh
./AAA/initSYTST.ora

3、获取帮助信息

代码语言:javascript
复制
#使用help获取帮助信息
[oracle@linux1 ~]$ tar --help
Usage: tar [OPTION...] [FILE]...
GNU `tar' saves many files together into a single tape or disk archive, and can
restore individual files from the archive.

Examples:
  tar -cf archive.tar foo bar  # Create archive.tar from files foo and bar.
  tar -tvf archive.tar         # List all files in archive.tar verbosely.
  tar -xf archive.tar          # Extract all files from archive.tar.
       ..........省略...........

#使用man或者info获取帮助信息
[oracle@linux1 ~]$ man tar    
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年01月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档