![특정 압축 풀기 순서가 있는 tar 아카이브](https://linux55.com/image/89448/%ED%8A%B9%EC%A0%95%20%EC%95%95%EC%B6%95%20%ED%92%80%EA%B8%B0%20%EC%88%9C%EC%84%9C%EA%B0%80%20%EC%9E%88%EB%8A%94%20tar%20%EC%95%84%EC%B9%B4%EC%9D%B4%EB%B8%8C.png)
압축 풀기 프로세스를 최대한 강력하게 만들기 위해 tar(.gz) 아카이브를 특정 순서로 압축 해제하여 정전과 같은 일이 해를 끼칠 가능성을 줄이기를 원합니다.
예를 들어 다음과 같은 디렉터리 트리가 있습니다.
.
├── b
└── foo
├── a
└── c
순서대로 포장을 풀고 싶어요
./foo/a
./b
./foo/c
tar
GNU 도 사용할 계획입니다 --format=oldgnu
. 다른 도구도 사용할 수 있지만 형식이 필요합니다.tar
bash
A
/ 를 사용하는 --append
것이 가능해야 합니다(또는 그렇게 생각했습니다). 그러나 지금까지의 모든 시도는 실패했습니다. 예를 들면 다음과 같습니다.
$ tar c ./foo/a | tar A ./b > test.tar tar: Options '-Aru' are incompatible with '-f -'
$ tar Af <(tar c ./foo/a) ./b > test.tar tar: Cannot backspace archive file; it may be unreadable without -i tar: /dev/fd/63: Cannot write: Bad file descriptor tar: Error is not recoverable: exiting now
./foo/c
(먼저 포맷 옵션과 파일 없이 테스트했습니다.)
답변1
tar
아카이브는 생성된 순서대로 압축이 풀립니다.
( echo foo; echo foo/a; echo b; echo foo/c ) | tar --no-recursion --files-from=- -cvf /tmp/tar.tar
그리고
tar tvf /tmp/tar.tar
drwxr-xr-x roaima/roaima 0 2016-06-27 20:20 foo/
-rw-r--r-- roaima/roaima 0 2016-06-27 20:20 foo/a
-rw-r--r-- roaima/roaima 0 2016-06-27 20:13 b
-rw-r--r-- roaima/roaima 0 2016-06-27 20:20 foo/c