linux tar指定文件到指定目录
项目需求:从远处拷贝压缩文件到本地后并解压,解压后的部分文件拷贝并重命名到其他目录
需求拆分:1.拷贝文件 2.解压文件 3.批量重命名
步骤一查看:http://www.cnblogs.com/ddddemo/p/5670534.html
步骤三查看:http://www.cnblogs.com/ddddemo/p/5729099.html
现在需要实现步骤二,解压文件。
第一种方案,tar zxvf $dir/XXX.tgz -C $targetDir/
这种会直接将文件解压到$targetDir目录下,因为要把XXX.tgz目录下的所有文件都解压,所以耗时最长
第二种方案,如果需要的部分文件含有一定的规律,可以使用* 或? 代表共同部分进行解压 或者 指出要解压的文件一一列出
tar zxvf $dir/XXX.tgz AABBCCDD*EEFF -C $targetDir/
其中 AABBCCDD*EEFF为指定要解压的文件,举例具体说明:
我有文件life_20160801_log.tgz
需要解压到dir=/data/ddddemo/log/ 目录下
其中tgz的完全解压后的目录结构如下:
life_20160801_log
|--am
|--relax_20160801_0001.log
|--relax_20160801_0101.log
|--relax_20160801_0201.log
|--relax_20160801_0301.log
|--relax_20160801_0401.log
|--relax_20160801_0501.log
|--relax_20160801_0601.log
|--relax_20160801_0701.log
|--work_20160801_0801.log
|--work_20160801_0901.log
|--work_20160801_1001.log
|--work_20160801_1101.log
|--work_20160801_1201.log
|--pm
|--work_20160801_1301.log
|--work_20160801_1401.log
|--work_20160801_1501.log
|--work_20160801_1601.log
|--work_20160801_1701.log
我们需要获取到 am下的work*日志
那么我们有两种实现方法
1.
tar -C $targetDir/ -zxvf $dir/life_20160801_log.tgz life_20160801_log/am/work_20160801_*
2.
tar -C $targetDir/ -zxvf $dir/life_20160801_log.tgz life_20160801_log/am/work_20160801_0801.log life_20160801_log/am/work_20160801_0901.log life_20160801_log/am/work_20160801_1001.log life_20160801_log/am/work_20160801_1101.log life_20160801_log/am/work_20160801_1201.log
相对来说,方法2稍微快一点 如果对时间效率要求不是非常高,可以使用第一种,代码简洁一些
linux tar指定文件到指定目录的更多相关文章
- Linux解压文件到指定目录
Linux解压文件到指定目录 tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数:-c :create 建立压缩档案的参数:-x : 解压缩压缩 ...
- linux 中 如何 搜索 指定目录 下 指定文件 的 指定内容
开发时,经常遇到 全局查找某些代码 linux 中 如何 检索 某 目录下指定文件 的 指定内容如下: //.点为查找当前目录 下 的 所有 *.php 文件里 有 hello 的文件 find . ...
- Java查找指定文件中指定字符的个数
package lwl.youweb2.test; import java.io.BufferedReader; import java.io.FileReader; import java.io.I ...
- 解压.zip,.tar.gz文件到指定目录,重命名文件
1.解压文件到指定目录 /** * 解压文件到指定目录 * zipFile:要解压的文件 * descDir:解压到哪个文件 * */ @SuppressWarnings("rawtypes ...
- linux tar打包压缩排除某个目录或文件
用tar打包时想剔除打包目录中的某个子目录或文件: 比如你想打包/home这个目录,但是/home/afish/目录和/home/www/afish.php文件你都不想打包,方法是: tar -zcv ...
- Linux tar压缩命令 排除某个目录 (根据man tar 总结)
一般直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 即可. 在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除 ...
- Java操作FTP,从FTP上读取指定文件,把指定文件上传到FTP
需要添加的依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> ...
- shell如何在指定文件的指定位置后面添加内容
最近工作中遇到一个问题,想在某个文件的指定位置后面添加一个标志位,要求在shell脚本里实现. 问题说明: 想在sys_config.fex文本的某个字符串后面添加一个flag 例如:sys_conf ...
- Linux 学习笔记03丨Linux文件系统、文件基本属性、目录处理及文件查看
Chapter 2. 文件系统 2.1 Linux 系统目录结构 命令窗口下输入命令: $ ls /,能够看到根目录下的全部目录及文件 树状目录结构为: 最顶级的目录: / :根目录 / 是根目录,~ ...
随机推荐
- dice2win早期版本
原理; https://medium.com/dapppub/fairdicedesign-315a4e253ad6 早期版本地址: https://etherscan.io/address/0xD1 ...
- 迭代器类型:iterator & const_iterator
vector<int> ivec{1, 3, 4, 1, 3, 4}; vector<int>::iterator iter; // iter能读写vector<int& ...
- Python—元组(戴上了枷锁的列表)
一.概念 元组属于不可变序列,元组是包含多个元素的类型,元素之间用逗号分割.例如:t1=123,456,“hello”元组可以是空的,t2=()元组包含一个元素时:t3=123,元组外侧可以使用括号, ...
- PHPCMS调取当前栏目的描述、文章位置导航、当前栏目链接、当前栏目名称
当我们填写了栏目描述,怎么调用出来. 使用 {$CATEGORYS[$catid][description]} 就可以把栏目的描述调用出来 下面三个也比较常用{catpos($catid)} 显示文章 ...
- [离散化]人潮最多的時段( Interval Partitioning Problem )
範例:人潮最多的時段( Interval Partitioning Problem ) 一群訪客參加宴會,我們詢問到每一位訪客的進場時刻與出場時刻,請問宴會現場擠進最多人的時段. 換個角度想,想像會場 ...
- iOS-UILabel加线
NSAttributedString *attrStr =[[NSAttributedString alloc]initWithString:[NSString stringWithFormat:], ...
- 【转】bind简单示例
bind简单示例代码 namespace { class placeholder_ {}; placeholder_ __1; } template <typename R, typename ...
- BAT批处理(六)
字符串处理 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特定字段.合并字符串.扩充字符串等功能.下面对这 ...
- 了解Solr
Solr 简 介 采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功 ...
- android应用打前需要准备些啥?
发布之前我们需要准备的东西 参考了google官方和结合国内开发经验 1) 用户协议(本地.网络.API) 2) 签名文件(用于为APP加密,唯一标签) 3) 程序图标(第一个面对用户,准备不同的但合 ...