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稍微快一點 如果對時間效率要求不是非常高,可以使用第一種,代碼簡潔一些

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM