
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