web-dev-qa-db-ja.com

コマンドラインからtar.7zファイルを作成するにはどうすればよいですか?

昨年から宿題を締めたいと思います。 Ubuntuのコマンドラインからフォルダー全体をtarおよびzipで圧縮するにはどうすればよいですか(GUIがありません)。

20

次のワンライナーを使用します。

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
25
ortang

man tarを読んでください。提供するもの:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

または、これらのいずれも適切ではなく、stdinを読み取る圧縮プログラムがある場合は、次のことができます。

tar cf- $HOME | my_compression_program >/tmp/compressed.output

出力を$HOME以外の場所に書き込んでいることに注意してください(バックアップしているディレクトリにバックアップすると、ファイルが制約なく成長します)。

または、man 7zを読むことができます-あなたができるように見えます

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 
9
waltinator

これはnot特にunix/linuxシステムで7zを直接圧縮することをお勧めします:7zは権限を保持せず、またはユーザー/グループ情報。だから:最初のタール、そして圧縮。

http://en.wikipedia.org/wiki/7z#Limitations の7Zip wikiページで報告されているように:

制限事項

7z形式はファイルシステムのアクセス許可(UNIX所有者/グループのアクセス許可またはNTFS ACLなど)を保存しないため、バックアップ/アーカイブの目的には不適切な場合があります。このためのUNIXライクシステムでの回避策は、7zで圧縮する前にデータをtarビットストリームに変換することです。

7
Giuseppe Curto

以下を使用することをお勧めします。

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

劇的な高速化のため。

Lzma2(-m0=lzma2)(システムで利用可能な最大コアと、基本的に高速で十分な「高速圧縮」プリセット(-mx=3)を使用する利点があります。LZMA2は圧縮だけでなく、解凍にもすべてのコアを利用します。

3
vordhosbn

tar -Jchf <Filename>.tar.xz <Files to compress>を使用する必要があります

-Jは、7Zipと同じXZ圧縮アルゴリズムを使用します

-cは新しいファイルを作成します-hはsimlinkを保持します-fはファイル名を設定します

0
Christian