gzip으로 압축된 tar 파일의 파일을 나열하는 것은 쉽습니다 xvfz
.
$ date >> a
$ date >> b
$ cat a b
Sun Sep 24 14:27:01 IDT 2017
Sun Sep 24 14:27:05 IDT 2017
$ cat dates.tgz | tar xfvz -
x a
x b
다음과 같은 정신으로 각 파일의 내용을 tar로 인쇄하는 우아한 방법이 있습니까?
$ cat dates.tgz | tar <?> -
a:
Sun Sep 24 14:27:01 IDT 2017
b:
Sun Sep 24 14:27:05 IDT 2017
답변1
나는 이것이 효과가 있을 것이라고 믿습니다:
tar --wildcards --to-stdout -xvf archive.tar.gz './*'
문제가 있을 수 있는 부분에 유의하세요 './*'
. tar가 경로와 정확히 얼마나 일치하는지 잘 모르겠습니다. 분명히 이것은 아카이브에 절대 경로가 있는 경우 일치하지 않지만, 그냥이 '*'
더 나은 옵션인지는 확실하지 않습니다.
나는 일부 tar 구현이 -O
이를 허용할 것이라고 믿습니다. /replace 그것이 GNU 구현에만 해당되는지 --to-stdout
는 확실하지 않습니다 .--wildcards
이것은 사용을 피하는 버전입니다--wildcards
tar -xOvf archive.tar.gz $(tar -tf archive.tar.gz)
답변2
tar
-O
또는 와 함께 GNU를 사용하는 것 외에는 --to-stdout
이식 가능한 방법으로 이를 수행할 수 있는 좋은 방법이 없습니다 .
$ tar -tvzf dates.tgz
-rw-r--r-- kk/wheel 30 2017-09-25 08:41 a
-rw-r--r-- kk/wheel 30 2017-09-25 08:41 b
$ tar -Ov -xzf dates.tgz
a
Mon Sep 25 08:41:51 CEST 2017
b
Mon Sep 25 08:41:53 CEST 2017
tar
OpenBSD의 BSD 구현은 -O
플래그를 지원하지 않으며 표준 pax
아카이버는 파일을 표준 출력으로 추출할 수 없습니다.