다음 폴더의 .tgz 아카이브를 생성해야 합니다.
pack
|
rest
|
vendor (folder)
|
----index.php
|
----info.log
|
another (folder)
|
---index.php
|
---info.log
|
---somefile.someext
|
somefolder1
|
somefoldern
|
somefiles.somexts
단순히 exclude=index.php
etc를 발행하면 의도하지 않은 결과가 발생할 수 있습니다.행상인그러면 해당 이름을 가진 파일이 직접 또는 해당 하위 폴더 중 하나에 있을 수 있습니다. 나머지 폴더의 모든 파일 내용을 무시하고 그 아래의 하위 폴더는 무시하지 않도록 tar에 지시할 수 있는지 여부를 문서에서 알 수 없습니다.
답변1
이 게시물을 접한 사람들을 위해 적어도 Ubuntu 14.04에서 작동하는 솔루션이 있습니다. 위에 표시된 폴더 구조의 경우
tar -zcf pack.tgz --exclude-from=/path/to/excludes.list pack
제외.목록내 경우에는 다음이 포함되어 있습니다.
rest/index.php
rest/info.log
rest/filetoexclude.ext
...기본적으로 제외할 파일 목록입니다. 지침
- Excepts.list 파일에 대한 절대 경로를 사용하면 스크립트 언어에서 실행되는 셸 명령을 통해 아카이브를 빌드하는 명령을 더 쉽게 작성할 수 있습니다.
- 제외된 파일의 형식은
folder/file.ext
,비교적보관 중인 폴더로 이동합니다. - 각 파일 이름 항목 뒤에는 개행 문자가 와야 합니다. 텍스트 편집기에서는 파일 이름 뒤에 공백을 추가하는 것이 쉽습니다. 이 경우 공백은 무시되지 않습니다.
답변2
another/index.php
" "를 패턴으로 사용하세요 (또는 " rest/another/index.php
").
$ mkdir -p pack/rest/vendor
$ mkdir -p pack/rest/another
$ touch pack/rest/{vendor,another}/index.php
$ tar --create --verbose --file xx.tar --exclude "another/index.php" pack/
pack/
pack/rest/
pack/rest/another/
pack/rest/vendor/
pack/rest/vendor/index.php
find
tar 파일 내용의 더 복잡한 선택의 경우 정확한 입력 목록을 생성할 수 있을 때까지 다듬기 및, 또는 등의 작업을 사용하는 것이 더 쉽다는 것을 알았습니다 . 그런 다음 이를 가져오고 cpio
스키마 --format=ustar
를 내보내 tar 파일을 생성합니다.