tar -f의 유연성

tar -f의 유연성

예를 들어 다음 명령에서는 tar -xzv작동하지만 tar -xzvf실패합니다.

wget ${target_url} -O - | tar -xzv --strip-components 1 -C ${web_application_root}/${domain}

내가 이해하는 바에 따르면 데이터 스트림을 STDOUT으로 다운로드 wget하고 이를 STDIN으로 파이프하여 tar해당 데이터로 디렉터리 파일을 생성(덮어쓰기)합니다. 파일에 저장되지 않은 데이터 스트림이 셸용 파일이 아니기 때문에 실패가 발생한다는
것을 이해합니다 . 따라서 tar "파일을 사용합니다"라고 말하면 작업이 중단됩니다.tar -xzvf-f

내가 눈치 채지 못한 경우가 하나 있었고 -f, 파이핑할 때 제거해야 한다는 것을 잊어버린 경우도 있었습니다. 이러한 경우는 거의 항상 -fwith 를 사용했기 때문에 발생했을 가능성이 높습니다 tar.
tar 버전이 있습니까? 아니면 -f데이터 스트림이 파일에 저장되지 않는 경우를 무시하는 tar를 만드는 조정이 있습니까?

관련 항목:
1.tar에서 -f를 사용하는 이유는 무엇입니까?
2.-f 옵션 없이 tar 추출됨
삼.wget에서 tar로 스트림을 파이프하고 특정 위치로 추출하는 데 실패합니다.

답변1

-ftar스트림이나 파일 또는 이와 유사한 동작을 변경하지 않습니다 .사용할 아카이브 이름을 지정하세요..

tar옵션에 매개변수가 없는 경우를 처리하는 변형도 없고 -f이를 수행하는 신뢰할 수 있는 방법도 없습니다. ~처럼카스예를 들어, 항상 매개변수를 취해야 한다는 것을 기억해야 합니다 -f. 오류 발생을 줄이는 한 가지 방법은 항상 오류를 격리하는 것 f입니다 -xzvf.-f

필요한 경우 항상 를 사용하는 것이 가장 좋습니다 -f. 이렇게 하면 -옵션 없는 동작(컴파일 시간 옵션 및 변수에 따라 다름)에 의존하는 것을 피할 수 있습니다. 문제를 해결하는 한 가지 방법은 항상 작업 후에 시작하고 적절할 때 변경하는 것입니다.tar-fTAPE-f --

관련 정보