tar에 파일을 추가 할 때 어떻게 임의의 선행 경로를 지정할 수 있습니까?


10

tar 파일 내에 임의의 경로를 설정하여 원본 파일 시스템에 없을 수있는 파일을 배치 할 수 있습니까? 이것은 / etc /의 백업을 원하지만 / configurations / etc /로 아카이브에 배치한다는 점에서 -C 스위치와 다릅니다.


1
IIRC는 -s옵션을 제공하지만 지금은 전체 답변을 작성할 시간이 없습니다.
Chris S

@ChrisS GNU tar 1.28 (Ubuntu 16.04) 옵션 -s은 짧기 --preserve-order때문에 주제를 벗어납니다. 여기
Stéphane Gourichon

답변:


7

GNU tar에서 --transform( --xform)는 파일 이름을 변환하는 옵션입니다. 설명서 및 예제는 여기 에서 찾을 수 있습니다


나는 이것이 linux.die.net이 아니라 내 시스템에서 man tar를 읽은 것을 보았을 것입니다! 답변 주셔서 감사합니다, 정규식은 내가 기대했던 것보다 훨씬 낫습니다.
andyortlieb

2
@andyorlieb, 시스템에서 작동하지 않는 "--xform"에 입력 해 주셔서 감사합니다. 그러나 백업에 대한 명확한 참조가 없으면 사람들의 답변 내용을 변경하지 마십시오. 감사합니다.
Chris S

-sOSX의 tar에 비슷한 모습
gman

언급 한 문서가 설명하는 좋은 길이로 이동 --transform=expression에서 추출 시간, 아직 대해 아무것도 말하지 않는다 추가 (요청 실제 질문은) 시간.
Stéphane Gourichon

3

BSD tar에서는 -s pattern이름을 변환하는 옵션이 있습니다. freebsd.org 문서 에서 인용 :

-s  pattern
     Modify file or archive member names according to pattern.  The
     pattern has the format /old/new/[ghHprRsS] where old is a basic
     regular expression, new is the replacement string of the matched
     part, and the optional trailing letters modify how the replace-
     ment is handled.  If old is not matched, the pattern is skipped.
     Within new, ~ is substituted with the match, \1 to \9 with the
     content of the corresponding captured group.  The optional trail-
     ing g specifies that matching should continue after the matched
     part and stop on the first unmatched pattern.  The optional
     trailing s specifies that the pattern applies to the value of
     symbolic links.  The optional trailing p specifies that after a
     successful substitution the original path name and the new path
     name should be printed to standard error.  Optional trailing H,
     R, or S characters suppress substitutions for hardlink targets,
     regular filenames, or symlink targets, respectively.  Optional
     trailing h, r, or s characters enable substitutions for hardlink
     targets, regular filenames, or symlink targets, respectively.
     The default is hrs which applies substitutions to all names.  In
     particular, it is never necessary to specify h, r, or s.

1
나는 tar 가 GNU tar에 관한 것이라고 말하고 Stéphane은 본질적으로 gnu가 아닌 tar가 주제에 맞지 않다고 언급했다. 그러나 BSD tar에 대한 태그 가 없기 때문에 이것이 적절한 대답이라고 생각합니다.
Patrick M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.