パイプすることが可能かどうか誰かに教えてもらえますか?これは、AとB.tar.gzの間に物理ファイルを作成する必要はありませんか?
これは私がやろうとしていることです:
だから例えば:
cp A B | tar cvf - B | gzip -9 B.tar.gz
次の例を使用して、中間ファイルの作成を回避できます。
gzipを使用したtar:
tar cf - A | gzip -9 > B.tar.gz
tarなしのgzip:
gzip -9c A > B.gz
gzipなしのtar:
tar cf B.tar A
最初にA
をB
に名前変更(移動)しても意味がありません。これが意図されている場合は、mv A B &&
上記のコマンドの前にA
をB
と交換します。
Tarとgzipの例:
mv A B && tar cf - B | gzip -9 > B.tar.gz
Tarのバージョンによって異なります
メンバー変換(--transformまたは--xform)をサポートするバージョンがある場合は、簡単に行うことができます
tar -c --transform=s/A/B/ A | gzip -9 > B.tar.gz
| gzip -9> B.tar.gzは、tarが-zオプションをサポートしている場合は回避できます。
tar -zcvf B.tar.gz --transform=s/A/B/ A
Tarのバージョンが--transformをサポートしていない場合は、最初にファイルをコピーする必要があります。
cp A B && tar -zcvf B.tar.gz B
ただし、1つのファイルのみを圧縮している場合は、tar部分をすべてスキップして実行してください。
cat A | gzip -9 > B.gz
cp
を使用して別の名前/場所でコピーを作成する場合は、完成した.gzipファイルを作成するときに必要な完全/最終パス名を含めるだけです。
tar -cvf existing.file | gzip -1 > ./newdirectory/newnamed.file.tgz