项目需求:从远处拷贝压缩文件到本地后并解压,解压后的部分文件拷贝并重命名到其他目录

需求拆分: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指定文件到指定目录的更多相关文章

  1. Linux解压文件到指定目录

    Linux解压文件到指定目录 tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数:-c :create 建立压缩档案的参数:-x : 解压缩压缩 ...

  2. linux 中 如何 搜索 指定目录 下 指定文件 的 指定内容

    开发时,经常遇到 全局查找某些代码 linux 中 如何 检索 某 目录下指定文件 的 指定内容如下: //.点为查找当前目录 下 的 所有 *.php 文件里 有 hello 的文件 find . ...

  3. Java查找指定文件中指定字符的个数

    package lwl.youweb2.test; import java.io.BufferedReader; import java.io.FileReader; import java.io.I ...

  4. 解压.zip,.tar.gz文件到指定目录,重命名文件

    1.解压文件到指定目录 /** * 解压文件到指定目录 * zipFile:要解压的文件 * descDir:解压到哪个文件 * */ @SuppressWarnings("rawtypes ...

  5. linux tar打包压缩排除某个目录或文件

    用tar打包时想剔除打包目录中的某个子目录或文件: 比如你想打包/home这个目录,但是/home/afish/目录和/home/www/afish.php文件你都不想打包,方法是: tar -zcv ...

  6. Linux tar压缩命令 排除某个目录 (根据man tar 总结)

    一般直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 即可. 在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除 ...

  7. Java操作FTP,从FTP上读取指定文件,把指定文件上传到FTP

    需要添加的依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> ...

  8. shell如何在指定文件的指定位置后面添加内容

    最近工作中遇到一个问题,想在某个文件的指定位置后面添加一个标志位,要求在shell脚本里实现. 问题说明: 想在sys_config.fex文本的某个字符串后面添加一个flag 例如:sys_conf ...

  9. Linux 学习笔记03丨Linux文件系统、文件基本属性、目录处理及文件查看

    Chapter 2. 文件系统 2.1 Linux 系统目录结构 命令窗口下输入命令: $ ls /,能够看到根目录下的全部目录及文件 树状目录结构为: 最顶级的目录: / :根目录 / 是根目录,~ ...

随机推荐

  1. 由一个hash字符串生成多个子hash字符串

    通过存储一个head hash,然后把子hash放到网络中 当然,也可以像默克尔树那样的,生成多级的子hash ,可以通过规则配置不同的hash 生成方式.倒置的默克尔树 我有一个文件,然后我把她分隔 ...

  2. Bitcoin: A Peer-to-Peer Electronic Cash System

    Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto October 31, 2008 Abstract A purely p ...

  3. 实战小项目之ffmpeg推流yolo视频实时检测

    之前实现了yolo图像的在线检测,这次主要完成远程视频的检测.主要包括推流--収流--检测显示三大部分 首先说一下推流,主要使用ffmpeg命令进行本地摄像头的推流,为了实现首屏秒开使用-g设置gop ...

  4. 接口_requests_基于python

    HTTP request python官方文档:http://cn.python-requests.org/zh_CN/latest/ 1. 环境 基于环境,需要安装requests 模块,安装方法 ...

  5. C中文件操作的文本模式和二进制模式,到底有啥区别?

    在C中,使用fopen打开文件有两种模式:一种是文本模式,一种是二进制模式.那这两种模式之间有什么区别,是不是使用文本模式打开的文件就只能使用文本函数比如fprintf来操作,而使用二进制打开的文件就 ...

  6. 20172330 2017-2018-1 《Java程序设计》第三周学习总结

    20172330 2017-2018-1 <Java程序设计>第三周学习总结 教材学习内容总结 这一章的主要内容是关于类与对象,通过对String类,Random类,Math类等一系列道德 ...

  7. 福州大学软工1816 | K班 第一次作业

    (一)回想一下你初入大学时对计算机专业的畅想 (1)当初你是如何做出选择计算机专业的决定的? 本身对于计算机感兴趣.高考完之后翻了书,对于物理数学等基础学科兴趣不大,对金融等商科几乎毫无了解,再加上当 ...

  8. C#通过SC命令和静态公共类来操作Windows服务

    调用的Windows服务应用程序网址:http://www.cnblogs.com/pingming/p/5115304.html 一.引用 二.公共静态类:可以单独放到类库里 using Syste ...

  9. PAT 1058 选择题

    https://pintia.cn/problem-sets/994805260223102976/problems/994805270356541440 批改多选题是比较麻烦的事情,本题就请你写个程 ...

  10. 原生js 自定义confirm

    本文参考博客园另一篇文章:https://www.cnblogs.com/hzj680539/p/5374052.html,在此感谢. 在实际开发当中,考虑到原生js组件,包括alert.confir ...