如何将新生成的文件移动到 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 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

相关内容