日常生活で、あらゆる種類のプラットフォームでアーカイブされたファイルに遭遇します。それがWindows、Mac、Linuxであってもです。すべてのプラットフォームには、アーカイブファイルを作成および解凍するためのいくつかのアプリケーションプログラムが用意されています。Linuxプラットフォームで作業すると、アーカイブファイルを非常に頻繁に扱う必要があります。

この記事では、標準Linuxディストリビューションで利用可能なアーカイブツール、その機能、例などについて説明します。この記事は2つの部分に分かれており、それぞれ5つのコマンドラインアーカイブツールを含んでいます(つまり、トップ10のコマンドラインアーカイブツール)
アーカイブファイルとは何ですか?
アーカイブファイルは、1つまたは複数のコンピュータファイルとメタデータから構成された圧縮ファイルです。
アーカイブの特徴
- データの圧縮
- 暗号化
- ファイルの結合
- 自動抽出
- 自動インストール
- ソースボリュームおよびメディア情報
- ファイルスパンニング
- チェックサム
- ディレクトリ構造情報
- その他のメタデータ(データに関するデータ)
- エラーの検出
応用分野
- メタデータとコンピュータファイルシステムの保存
- ファイルのローカル転送に役立つ
- Web上でのファイル転送に役立つ
- ソフトウェアのパッケージングアプリケーション
標準Linuxディストリビューションで利用可能な有用なアーカイブアプリケーションは以下の通りです。
1. tarコマンド
tarは、標準のUNIX/Linuxアーカイブング工具です。初期段階ではテープアーカイブングプログラムであり、徐々に各種アーカイブファイルを処理できる汎用アーカイブパッケージに発展しました。tarは多くのアーカイブフィルタとオプションを受け入れます。
tarオプション
- -A : 既存のアーカイブにtarファイルを追加します。
- -c : 新しいアーカイブファイルを作成します。
- -d : アーカイブを指定されたファイルシステムと比較します。
- -j : アーカイブをbzipで圧縮します。
- -r : 既存のアーカイブにファイルを追加します。
- -t : 既存のアーカイブの内容をリストします。
- -u : アーカイブを更新します。
- -x : 既存のアーカイブからファイルを抽出します。
- -z : アーカイブをgzipで圧縮します。
- –delete : 既存のアーカイブからファイルを削除します。
tarの例
tarアーカイブファイルを作成します。
# tar -zcvf name_of_tar.tar.gz /path/to/folder
tarアーカイブファイルを解凍します。
# tar -zxvf Name_of_tar_file.tar.gz
詳細な例については、Linuxの18のTarコマンドの例を読んでください。
sharコマンド
sharは自己展開アーカイブファイルで、遺産的なユーティリティであり、ファイルの抽出にUnix Bourne Shellが必要です。sharはプレーンテキストであるという利点がありますが、実行可能ファイルを出力するため、潜在的に危険です。
sharオプション
- -o:オプションで指定されたアーカイブファイルに出力を保存します。
- -l:オプションで指定された出力サイズを制限しますが、分割しません。
- -L:オプションで指定された出力サイズを制限し、分割します。
- -n:sharファイルのヘッダーに含めるアーカイブ名です。
- -a:ヘッダーの自動生成を許可します。
注意:「-o」オプションは、「-l」または「-L」オプションが使用される場合に必要であり、「-n」オプションは「-a」オプションが使用される場合に必要です。
sharの例
sharアーカイブファイルを作成します。
# shar file_name.extension > filename.shar
sharアーカイブファイルを抽出します。
# unshar file_name.shar
3. arコマンド
arは、主にバイナリオブジェクトファイルライブラリ用の作成および操作ユーティリティです。arはアーカイバとして表され、任意の目的のための任意の種類のアーカイブを作成するために使用できますが、現在では主に「tar」に置き換えられ、今日では静的ライブラリファイルを作成および更新するためにのみ使用されています。
arオプション
- -d:アーカイブからモジュールを削除します。
- -m:アーカイブ内のメンバーを移動します。
- -p:アーカイブ内の指定されたメンバーを印刷します。
- -q:クイック追加。
- -r:ファイルメンバーをアーカイブに挿入します。
- -s:アーカイブにインデックスを追加します。
- -a:既存のアーカイブメンバーに新しいファイルを追加します。
arの例
‘ar’ツールを使用して’a’というスタティックライブラリである’libmath.a’を使用して、オブジェクトファイル’substraction’と’division’を含むアーカイブを作成します。
# ar cr libmath.a substraction.o division.o
‘ar’アーカイブファイルを抽出します。
# ar x libmath.a
4. cpio
cpioは、Linux用の汎用ファイルアーカイバです。これは、RedHatパッケージマネージャ(RPM)やLinuxカーネルのinitramfs、およびAppleコンピューターのインストーラ(pax)でも積極的に使用されています。
cpioオプション
- -0:改行文字ではなくヌル文字で終了するファイル名のリストを読み取ります。
- -a:アクセス時間をリセットします。
- -A:追加。
- -b:スワップ。
- -d:ディレクトリを作成します。
cpioの例
cpioアーカイブファイルを作成します。
# cd tecmint # ls file1.o file2.o file3.o # ls | cpio -ov > /path/to/output_folder/obj.cpio
cpioアーカイブファイルを抽出します。
# cpio -idv < /path/to folder/obj.cpio
5. Gzip
gzipは、標準で広く使用されているファイルの圧縮および展開ユーティリティです。Gzipはファイルの連結を許可します。gzipでファイルを圧縮すると、tarボールが出力され、その形式は’*.tar.gz‘または’*.tgz‘の形式です。
gzipオプション
- –stdout: 標準出力に出力します。
- –to-stdout: 標準出力に出力します。
- –decompress: ファイルを展開します。
- –uncompress: ファイルを展開します。
- -d: ファイルを展開します。
- -f: 強制的に圧縮/展開します。
gzipの例
‘gzip’アーカイブファイルを作成します。
# tar -cvzf name_of_archive.tar.gz /path/to/folder
‘gzip’アーカイブファイルを展開します。
# gunzip file_name.tar.gz
上記のコマンドは、以下のコマンドが続くように渡す必要があります。
# tar -xvf file_name.tar
注意: ‘gzip’のアーキテクチャと機能性により、壊れた’gzipped tarアーカイブ’ファイルを回復することが難しいです。重要なgzippedファイルのバックアップを複数の場所に作成することをお勧めします。
以上で終了です。次回の記事では、Linuxで利用可能な他の圧縮および展開アプリケーションについて議論します。その間、お楽しみに。Tecmintにアクセスし続け、以下のコメント欄で貴重なフィードバックをお寄せいただくことをお忘れなく。
Source:
https://www.tecmint.com/command-line-archive-tools-for-linux/