새로 생성된 파일을 tarfile의 특정 위치로 이동하는 방법

새로 생성된 파일을 tarfile의 특정 위치로 이동하는 방법

C 파일을 만들었습니다.

 (
cat <<'End'
ifdef
 ...
 else
 ...
 endif
EOF) > $CFILE

새로 생성된 c 파일을 생성된 Tar 파일 내의 특정 위치로 이동하고 싶습니다.

tar -rvf $TARFILE "magically move CFILE to /foo/bar in tar file"

답변1

GNU의 경우 -style을 tar사용 --transform하고 지정하여 sed바꿉니다 .

$ tar -rvf test.tar --transform 's#^#/here/it/is/#' .profile
.profile

$ tar tf test.tar
tar: Removing leading `/' from member names
/here/it/is/.profile

BSD의 경우 비슷한(그러나 동일하지는 않은) 방식으로 사용합니다 tar.-s

$ tar -rvf test.tar -s '#^#/here/it/is/#' .profile
/here/it/is/.profile

$ tar tf test.tar
tar: Removing leading / from absolute path names in the archive
here/it/is/.profile

관련 정보