zoukankan      html  css  js  c++  java
  • 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稍微快一点 如果对时间效率要求不是非常高,可以使用第一种,代码简洁一些

  • 相关阅读:
    查询数据库对象依赖关系
    SQL Server数据库管理员必备:DBCC命令
    使用延迟的FileSystemWatcher来避免重复触发事件
    在Lambda表达式中使用递归
    如何观察SQL Server 生成和重用执行计划
    利用Lambda表达式、扩展方法以及泛型来实现一个另类的AOP
    将 SQL Server 2000 系统表映射到 SQL Server 2005 系统视图[MSDN]
    利用Lambda表达式、扩展方法以及泛型来为对象添加方法
    C# 中编译器是如何实现闭包的
    在ASP.NET中使用FileSystemWatcher来监控文件目录
  • 原文地址:https://www.cnblogs.com/ddddemo/p/5731736.html
Copyright © 2011-2022 走看看