Linux

包括 tar + gunzip 的語法

  • March 7, 2017

我想要tar一些gzip包含的目錄。請讓我知道它的語法是什麼。以下也需要考慮。

1)如果tar.gz用一個tar文件完成2G後拆分會很有幫助。(比如說:tar.gzaa變成2G,那麼它應該繼續創建tar.gzab

  1. 將日誌資訊附加到日誌文件的語法

3)排除某些類型的具有特定副檔名的文件(比如我的源目錄將是 tar 有一些帶有.log文件的子目錄,我需要排除那些要被 tarred 的文件。

提前致謝。

也許你可以嘗試這樣的事情:

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
  • 焦油詳細輸出到 STDERR,這就是我使用的原因2> LOG_FILE.log
  • 拆分詳細輸出到 STDOUT,我只是將其附加>> LOG_FILE.log
  • 要“恢復”您的目錄(join、gunzip 和 untar),您可以使用:
cat splitted_tar_file.tar.gz.a? | tar -xzvf -

引用自:https://unix.stackexchange.com/questions/349217