tar의 기본 동작을 설정하는 방법은 무엇입니까?

tar의 기본 동작을 설정하는 방법은 무엇입니까?

-cvzpf를 제외하고 tar와 함께 다른 옵션을 사용할 필요가 없었습니다. 이것을 기본 동작으로 설정하는 방법이 있습니까?

나는 종종 말하기가 불가능하다는 것을 알고 있지만누군가 프로그램을 다른 방식이 아닌 한 가지 방식으로 작성했는데 tar가 대부분의 다른 명령줄 유틸리티와 같은 작업을 수행하지 않는 이유를 이해할 수 없습니다. 즉:

command -options /source/path /target/path

대신에 왜:

command -options /target/path /source/path

답변1

-cvzpf는 적어도 다음과 같은 이유로 기본 동작이 아닙니다.

  1. -c는 사람들이 최소한 똑같이 아카이브의 내용을 추출하거나 보길 원하는 아카이브 생성을 지정합니다.
  2. -v는 자세한 작업을 지정하지만 일부 사람들은 모든 것을 보고 싶어하지 않습니다.
  3. -p 이것은 아무 관련이 없습니다만들다파일.
  4. -f 사용자가 출력을 파일(또는 기존 Unices의 기본 테이프 장치) 대신 다른 장치/프로그램으로 파이프하려는 경우.

당신이 제안한 것이 아닌 이유는 테이프 드라이브 사용 및 원본 작성자의 인코딩과 관련하여 처리해야 하는 역사적인 이유입니다.

기본 동작으로 설정하는 경우 별칭을 만들 수 있지만 파일을 추출하려면 별도의 별칭이 필요합니다.

GNU 구현의 기본 옵션을 변경하는 또 다른 방법 은 환경 변수를 tar설정하는 것입니다 . TAR_OPTIONS-f를 옵션 중 하나로 지정하려고 하면 마음에 들지 않습니다.

export TAR_OPTIONS=-tvzp

옵션을 설정할 수 있지만 충돌하는 옵션을 tar에 전달하면 오류가 발생합니다. 예를 들어 TAR_OPTIONS를 위와 같이 설정하고 아카이브를 추출하려고 하면 다음과 같은 오류가 발생합니다.

tar: You may not specify more than one `-Acdtrux' or `--test-label' option
Try `tar --help' or `tar --usage' for more information.

답변2

에 대한 두 가지 질문에 대한 답은 모르지만 tar명령줄 도구의 기본 동작을 설정하는 방법은 알려드릴 수 있습니다.

사용alias명령을 사용하면 셸의 모든 단어를 문자열로 바꿀 수 있습니다. 별칭의 정확한 사용은 사용하는 셸에 따라 다릅니다. 다음 예제는 bash셸에서 실행됩니다.

alias tar='tar -cvzpf'

이는 tar라는 단어를 "tar -cvzpf"로 대체합니다. Bash가 이를 "기억"하려면 bash 쉘이 시작될 때 실행되는 스크립트에 별칭 명령을 배치해야 합니다 .bashrc. .alias거기에서 스크립트 .bashrc.)

csh/ tcsh쉘 에서는 작은따옴표 대신 =큰따옴표를 생략하고 사용할 수 있습니다. "사용 중인 쉘을 찾으려면 를 입력하십시오 echo $SHELL.

관련 정보