tar 명령에서 -f 매개 변수의 기능


19

사용할 때 tar항상 -f매개 변수에 포함하지만 이유를 모릅니다.

나는 남자를 찾고 말했다.

-f, --file [HOSTNAME:]F

use archive file or device F (default
"-", meaning stdin/stdout)

그러나 솔직히 말해서 나는 그것이 무엇을 의미하는지 전혀 모른다. 누구든지 그것에 빛을 비출 수 있습니까?

답변:


20

-f옵션은 tar다음 인수가 아카이브의 파일 이름이거나 표준 출력 인 경우이를 알려줍니다 -.


아, 건배! 어쨌든 파일 이름이 다음에 나타나야한다고 가정 하여이 -f가 더 특별한 것을하고있었습니다!
Toby

6
@Toby : 나는 이것이 역사적인 이유로 의심합니다. "tar"는 "tape archive"의 약자이며 아마도 원래 버전은 디스크 파일을 아카이브에 자주 사용하는 사람들을 상상하지 않았을 것입니다.
David Thornley

8

아주 간단합니다. -f매개 변수 를 생략하면 출력이 stdout으로 전달됩니다.

gammy@denice:/tmp/demo$ tar -c a b c
a0000644000175000017500000000000011435437117010223 0ustar  gammygammyb0000644000175000017500000000000011435437117010224 0ustar  gammygammyc0000644000175000017500000000000011435437117010225 0ustar  gammygammygammy@denice:/tmp/demo$ ls
a  b  c
gammy@denice:/tmp/demo$ 

...이 엉망!

-f-parameter은 (당신이 인용) 파일 이름 (선택적으로 호스트 이름), 따라서 그 후 첫 번째 인수는 출력 파일 이름은 기대 :

gammy@denice:/tmp/demo$ tar -cf output.tar a b c
gammy@denice:/tmp/demo$ ls
a  b  c  output.tar
gammy@denice:/tmp/demo$ 

5
> -f 매개 변수를 누르면, 출력은 stdout으로 전달됩니다 . 이것은 GNU tar의 경우에 해당하지만 Solaris에서는 기본값이 테이프 장치 ( /dev/rmt0또는 이와 유사한 장치)임을 기억합니다 .
Cristian Ciupitu

* 생략 ( "압설"아님)
Mr Ethernet

1
GNU조차도 tar더 이상 문서화되지 않은 TAPE변수를 존중합니다 . 예를 들어, TAPE=/tmp/tape.tar tar cv /etc/h*and를 시도하십시오 ls -l /tmp/tape.tar.
roaima

2

작업 할 파일이나 장치를 지정할 수 있습니다. 제공된 다른 플래그에 따라 항목을 작성, 업데이트 또는 추출합니다. 예를 들면 다음과 같습니다.

# Create a tar file with the contents of somepath/
tar -cvf filename.tar somepath/

# Extract the tar file.
tar -xvf filename.tar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.