tar create: 터미널에서 "tar: 멤버 이름에서 선행 '/' 제거" 메시지를 방지하는 방법은 무엇입니까?

tar create: 터미널에서 "tar: 멤버 이름에서 선행 '/' 제거" 메시지를 방지하는 방법은 무엇입니까?

tar명령 정보

명령을 실행하는 경우:

tar -czf numbers.tar.gz numbers

파일 은 현재 디렉터리에서 생성 numbers.tar.gz됩니다.numbers

이 아니라면스크립트 목적- 테스트 통과 - 실행된 경우:

tar -czf ~/numbers.tar.gz /home/username/numbers
tar -czf /home/username/numbers.tar.gz /home/username/numbers

두 가지 명령일하다예상한 대로이지만 다음 메시지가 항상 나타납니다.

  • "tar: 멤버 이름에서 선행 '/'를 제거합니다."

이는 적어도 하나의 경로(이 경우 둘 다 해당 /문자를 갖거나 포함하고 있기 때문에 발생합니다.) 나도 알아요아니요실수지만 궁금하네요

질문

  • 터미널에서 "tar: 멤버 이름에서 선행 '/' 제거" 메시지를 방지하는 방법은 무엇입니까?

나는 그것이라고 가정하고있다정보또는경고하다뉴스와스크립트 목적생성 경로 tar.gz와 압축 소스를 정의하는 데 필요합니다 directory. 터미널에서 해당 메시지를 보고 싶지 않습니다. 가능합니까? 옵션은 무엇입니까?

답변1

아카이브 멤버로 절대 경로를 갖는 것은 좋지 않습니다. 이것이 GNU가 tar기본적으로 (아카이브 멤버 이름과 하드 링크 대상(있는 경우)에서) 이니셜을 실제로 제거하는 이유입니다./

tar스트리핑을 수행하는 데 만족 하지만 경고를 제거하고 싶다면 직접 스트리핑을 수행할 수 있습니다.

tar -C / -czf ~/numbers.tar.gz home/username/numbers

또는:

tar -C /home/username -czf ~/numbers.tar.gz numbers

보관된 멤버의 경우 numbers/file로 변경 해야 합니다 home/username/numbers/file.

사용/파괴를 하지 않도록 할 수 있으며 tar, 이 경우 아카이브 회원이 됩니다.--absolute-names-P/home/username/numbers/file

추출할 때 대부분의 tar구현에서는 기본적으로 /안전 조치로 이 선행도 제거합니다. 디렉토리에서 추출하면 파일이 아카이브에 저장되어 있는지 여부 에 관계없이 또는 / 옵션을 다시 전달하지 않는 한 /tmp/test파일이 추출됩니다 (실제로 경로를 원하는 경우 a를 수행 하거나 a를 전달하는 것이 더 합리적일 수 있음). 절대 경로와 동일하게 루트를 기준으로 해석됩니다./tmp/test/home/username/numbers/filehome/username/numbers/file/home/username/numbers/file-P--absolute-namescd /-C /

관련 정보