簡體   English   中英

如何使用特定名稱(日期月份名稱)對特定目錄進行tar處理

[英]how to tar specific directories with specific names ( date month name )

我有一個名為/ var / tmp / all-results_dir的目錄,因此為了壓縮此目錄,我們只需這樣做:

    tar -zcvf results_2014_10.tar.gz /var/tmp/all-results_dir

但是當我們只想使用Jul month來壓縮以下特定目錄時,那么在這種情況下如何運行tar? (或需要在tar語法中添加什么?)

在/ var / tmp / all-results_dir下

   drwxrwxrwx 3 eded  Unix_31 409 Jul  8 21:14 a87f2c43-096910
   drwxrwxrwx 3 dwc   Unix_31 409 Jul  8 21:19 ba5f59f-944df29
   drwxrwxrwx 3 nce   Unix_31 409 Jul  8 21:36 8b3b7e967740baa
   drwxrwxrwx 3 oke   Unix_31 409 Jul  8 21:37 433ee4bb4f57b72
   drwxrwxrwx 3 pli   Unix_31 409 Jul  8 21:39 57691d-7c09a23d
   drwxrwxrwx 3 nbd   Unix_31 409 Jul  8 21:48 4370de7b-93d887
   drwxrwxrwx 3 plo   Unix_31 409 Jul  8 21:51 686896a0-ed7532
   drwxrwxrwx 3 oke   Unix_31 409 Aug  8 21:37 4334f57b72efeff
   drwxrwxrwx 3 pli   Unix_31 409 Aug  8 21:39 523defefefef4cv
   drwxrwxrwx 3 nbd   Unix_31 409 Aug  8 21:48 437b-93d887bv45
   drwxrwxrwx 3 plo   Unix_31 409 Aug  8 21:51 680-ed7532dgvfv

使用gnu find可以做到:

find /var/tmp/all-results_dir -type f -newermt '2014-07-01' ! -newermt '2014-08-01' \
  -exec tar -rzf /var/TAR/results_2014_Jul.tar.gz {} +
  • -newermt '2014-07-01' ! -newermt '2014-08-01' -newermt '2014-07-01' ! -newermt '2014-08-01'將查找2014年7月修改的所有文件。
  • tar -rzf將在檔案中附加文件。

腳本dotar.sh

#!/bin/bash

find . -name 'f*' -newermt "2014-$1-01" ! -newermt "2014-$(($1+1))-01" \
   -exec tar -rzf /var/TAR/results_2014_$1.tar.gz {} +

稱呼為:

./dotar.sh 7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM