tarファイルを作成しようとしています。 tarredが必要なフォルダが2つあります。私の質問を明確にしましょう。
folder 1. /temp1
folder 2. /temp1
今私のtar出力は次のようになりたいと思います。解凍すると、次のような結果が得られます。
/temp1/* (stuff of temp1)
/temp1/temp2/* (temp2 and subdirectories inside temp1).
次に、temp2をtemp1にコピーして圧縮します。誰かが私がこれらのコンテンツをコピーする必要がない方法でこれを行うように提案できますか?途中でプロセスを終了するのと同じように、temp2の一部の内容をtemp1に残します。
ベストアンサー1
temp2をtemp1にSymlinkにリンクし、tarに-h
orオプションを使用して--dereference
シンボリックリンクを逆参照(続行)するように指示します。
例えば
cd temp1
ln -s ../temp2/ .
cd ..
tar cvz -h -f example.tar.gz ./temp1
rm -f temp1/temp2
これにより、ディレクトリ(たとえば)の./temp2
下にtarアーカイブが作成されます。./temp1
./temp1/temp2
-h
このオプションがGNU拡張であるかどうか覚えていません。 GNUを使用していない場合は、tar
使用する前に慎重にテストしてください。
temp1の修正タイムスタンプに興味がある場合は、以下を使用してくださいtouch -r
。
touch -r temp1 temp1-modtime
cd temp1
ln -s ../temp2/ .
cd ..
touch -r temp1-modtime temp1
tar cvz -h -f example.tar.gz ./temp1
rm -f temp1/temp2
touch -r temp1-modtime temp1
rm -f temp1-modtime