アーカイブ内に含めるファイル名を指定しながら、stdinを介して指定されたファイルから圧縮アーカイブを自動的に作成します(または、アーカイブがまだ存在しない場合はアーカイブを作成します)。
7Zipには、私が求めていることを正確に実行する機能があるようです( dok )。
使用法は次のとおりです。
cat some_file.png | 7z a archive.7z -t7z -si"custom_filename1.png"
これにより、「custom_filename1.png」というファイルがarchive.7zに追加されます。ただし、7ZipはほとんどのLinuxディストリビューションにプリインストールされていないと思うので、可能であれば7Zipなしでこれを実行したいと思います。 tarでこれを行う方法を探しましたが、これだけが見つかりました post これは私のマシンでは機能しないようです。
一時ファイルを作成したくありません。
あなたがやりたいと思われることは、他のコマンドの標準出力から、ファイルをtar
アーカイブに1つずつ追加することです。
アーカイブが存在すると仮定すると、を使用して特定のファイルをアーカイブに追加できます。
tar -u -f archive.tar filename
または、圧縮アーカイブを使用している場合は、
tar -uz -f archive.tar.gz filename
filename
というファイルがファイルシステムに存在している必要があります。つまり、ワークフローでは、ファイルを保存してからアーカイブに追加してから、ファイルを再度削除する必要があります。
おそらくこのようなもの:
somecommand filename.png >newfile1.png &&
tar -u -f archive.tar newfile1.png &&
rm newfile1.png
&&
コマンド間では、前のコマンドが何らかの理由で失敗した場合にコマンドが実行されないようにします。
既存のファイルと同じ名前のファイルを追加すると、アーカイブ内の古いファイルが「非表示」になるため、新しい名前の各ファイルをアーカイブに追加する必要があることに注意してください。
filename
でファイルをパックします。出力はfilename.tgz
tar czf filename.tgz filename
ファイルのリストから1つ以上をパックします
tar czf files.tar.gz --files-from ./filelist
同じことですが、方法が異なります
ls -1b . >./filelist && tar czf ./files.tar.gz --files-from ./filelist
追加のファイルで追加(tarballの更新)
tar czuf ./files.tar.gz ./newfile
注:tar
オプションのバージョンによって異なりますmayまたはは前にハイフン(-)
オプションの凡例
gzip
圧縮を使用tar
ファイル名tarのマニュアルページ も参照してください。
HTH
ファイルマネージャに移動してファイルを右クリックし、[圧縮]をクリックして、任意のファイルタイプにすることで、これを簡単に回避できます。