Solaris에서 gz의 파일을 제외하는 방법

Solaris에서 gz의 파일을 제외하는 방법

Solaris에서 gz를 사용할 때 파일을 제외하는 방법: gz 디렉토리에 하위 디렉토리가 포함되도록 하고 싶지만 /temp 디렉토리와 *.gz 파일은 제외합니다. 이것이 제가 지금까지 사용한 것입니다.

tar -cvf api_v2.x.tar.gz --exclude *.gz --exclude ./temp api

여기에는 제외된 폴더가 계속 포함됩니다.

답변1

Solaris 명령에는 파일/디렉토리를 제외하는 스위치가 tar있습니다 . 사용법은 X매뉴얼 페이지를 참조하세요 .man tar

매뉴얼 페이지에서:

엑스

Exclude.  Use the exclude-file argument as a file containing a list
of relative path names for files (or directories)  to  be  excluded
from the tarfile when using the functions c, x, or t. Be careful of
trailing white spaces. Also beware of leading white spaces,  since,
for each line in the excluded file, the entire line (apart from the
newline) is used to match against the initial string  of  files  to
exclude. Lines in the exclude file are matched exactly, so an entry
like "/var" does not exclude the /var directory if tar  is  backing
up  relative  pathnames.  The entry should read "./var" under these
circumstances. The tar command does not expand shell metacharacters
in the exclude file, so specifying entries like "*.o" does not have
the effect of excluding all files with names suffixed with ".o". If
a  complex list of files is to be excluded, the exclude file should
be generated by some means such as the find(1) command with  appro-
priate conditions.

Multiple  X  arguments can be used, with one exclude-file per argu-
ment. In the case where included files (see -I  include-file  oper-
and)  are  also  specified, the excluded files take precedence over
all included files. If a file is specified in both the exclude-file
and the include-file (or on the command line), it is excluded.

첫 번째 단락의 마지막 문장을 참고하세요.

복잡한 파일 목록을 제외하려면 적절한 조건을 사용하여 find(1) 명령과 같은 방법으로 제외 파일을 생성해야 합니다.

gtar최신 Solaris 버전에는 의 해당 매뉴얼 페이지와 함께 사용할 수 있는 GNU tar도 있습니다 man gtar. 이 버전의 특징--exclude=PATTERN

사용 예 tar:

/tmp$ find api/
api/
api/a.gz
api/temp
api/temp/b
api/b

/tmp$ cat api/exclude_from_tar 
api/a.gz
api/temp

/tmp$ tar cvfX api.tar api/exclude_from_tar api
a api/ 0K
a api/a.gz excluded
a api/temp excluded
a api/exclude_from_tar 1K
a api/b 0K

/tmp$ tar tf api.tar 
api/
api/exclude_from_tar
api/b

사용 예 gtar:

/tmp$ gtar cvf api.tar --exclude="*.gz" --exclude=temp api
api/
api/exclude_from_tar
api/b

/tmp$ tar tf api.tar 
api/
api/exclude_from_tar
api/b

답변2

*.gz현재 디렉토리에 .gz 파일이 포함되어 있으면 패턴( )을 인용해야 합니다 "*.gz". 그렇지 않으면 tar가 패턴을 보기 전에 쉘이 패턴을 확장합니다.

ztar가 gzip 압축 아카이브를 생성하도록 하려면 이를 매개변수 목록에 추가해야 합니다.

관련 정보