包含 tar +gunzip 语法

包含 tar +gunzip 语法

我想要tar一些包含的目录gzip。请让我知道它的语法是什么。还需考虑以下几点。

tar.gz1) 如果在一个 tar 文件完成 2G 后进行分割,将会很有帮助。(比如:tar.gzaa变成 2G,那么它应该继续创建tar.gzab

2) 将日志信息附加到日志文件的语法

3)排除某些类型的具有特定扩展名的文件(假设我的源目录将是tar,其中有一些带有.log文件的子目录,我需要排除那些要被tarred的文件。

提前致谢。

答案1

也许你可以尝试这样的事情:

tar --exclude='*.EXTENSION' -czvf - DIRECTORY/ 2> LOG_FILE.log | split --verbose --bytes=2048MB - FILE.tar.gz. >> LOG_FILE.log

我们来测试一下。假设我们有一个directory以此文件命名的目录:

eduardo@Notebook:~/testtar$ ll -h directory/
total 570M
drwxr-xr-x 2 eduardo eduardo 4,0K mar  6 23:25 ./
drwxr-xr-x 3 eduardo eduardo 4,0K mar  6 23:28 ../
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:16 file.any
-rw-r--r-- 1 eduardo eduardo 570M mar  6 23:24 hugefile.dd
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:15 image.jpg
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:16 log.log
-rw-r--r-- 1 eduardo eduardo    0 mar  6 23:14 text.txt

焦油命令:

tar --exclude='*.log' -czvf - directory/ 2> splitted_tar.log | split --verbose --bytes=50MB - splitted_tar_file.tar.gz. >> splitted_tar.log

输出文件:

eduardo@Notebook:~/testtar$ ll -h
total 299M
drwxr-xr-x  3 eduardo eduardo 4,0K mar  6 23:53 ./
drwxr-xr-x 41 eduardo eduardo 4,0K mar  6 23:16 ../
drwxr-xr-x  2 eduardo eduardo 4,0K mar  6 23:25 directory/
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:52 splitted_tar_file.tar.gz.aa
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ab
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ac
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ad
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.ae
-rw-r--r--  1 eduardo eduardo  48M mar  6 23:53 splitted_tar_file.tar.gz.af
-rw-r--r--  1 eduardo eduardo  13M mar  6 23:53 splitted_tar_file.tar.gz.ag
-rw-r--r--  1 eduardo eduardo  399 mar  6 23:53 splitted_tar.log

日志档案:

eduardo@Notebook:~/testtar$ cat splitted_tar.log 
directory/
directory/text.txt
directory/hugefile.dd
directory/file.any
directory/image.jpg
creating file 'splitted_tar_file.tar.gz.aa'
creating file 'splitted_tar_file.tar.gz.ab'
creating file 'splitted_tar_file.tar.gz.ac'
creating file 'splitted_tar_file.tar.gz.ad'
creating file 'splitted_tar_file.tar.gz.ae'
creating file 'splitted_tar_file.tar.gz.af'
creating file 'splitted_tar_file.tar.gz.ag'

笔记:

  • 由于参数的原因,该文件log.log未包含在最终文件中(请确保将其放在源项目和目标项目之前).tar.gz--exclude
  • Tar 详细输出转到 STDERR,这就是我使用的原因2> LOG_FILE.log
  • 分割详细输出到 STDOUT,我只是将其附加>> LOG_FILE.log
  • 要“恢复”您的目录(加入、gunzip 和解压),您可以使用:

     cat splitted_tar_file.tar.gz.a? | tar -xzvf -
    

相关内容