tar +gunzip 구문이 포함되어 있습니다.

tar +gunzip 구문이 포함되어 있습니다.

나는 tar포함된 디렉토리를 원합니다 gzip. 구문이 무엇인지 알려주십시오. 고려해야 할 몇 가지 사항이 더 있습니다.

tar.gz1) 2G가 완료된 후 tar 파일을 분할해 놓으면 도움이 될 것입니다. (예: tar.gzaa2G가 되면 계속 생성되어야 함 tar.gzab)

2) 로그 파일에 로그 정보를 추가하는 구문

3) 특정 확장자를 가진 특정 유형의 파일을 제외합니다. (내 소스 디렉토리가 tar로 지정되고 일부 .log하위 디렉토리에 파일이 포함되어 있다고 가정하면 tar로 지정될 파일을 제외해야 합니다.

미리 감사드립니다.

답변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 -
    

관련 정보