我创建了一个 C 文件:
(
cat <<'End'
ifdef
...
else
...
endif
EOF) > $CFILE
我想将这个新创建的 c 文件移动到已生成的 Tar 文件中的特定位置。
tar -rvf $TARFILE "magically move CFILE to /foo/bar in tar file"
答案1
对于 GNU tar
,通过使用--transform
并指定sed
-style 替换:
$ 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