[英]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.