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가 패턴을 보기 전에 쉘이 패턴을 확장합니다.
z
tar가 gzip 압축 아카이브를 생성하도록 하려면 이를 매개변수 목록에 추가해야 합니다.