Linuxアーカイブコマンド解説

アーカイブコマンド

ファイルの圧縮、解凍、アーカイブを行うコマンドです。

tar - ファイルのアーカイブ

複数のファイルを1つのアーカイブファイルにまとめたり、展開したりします。

オプション 説明
-c 新しいアーカイブを作成
-x アーカイブからファイルを展開
-t アーカイブの内容を一覧表示
-f [file] アーカイブファイル名を指定
-v 詳細な情報を表示(処理されるファイルを表示)
-z gzipで圧縮/解凍(.tar.gz, .tgz)
-j bzip2で圧縮/解凍(.tar.bz2)
-J xzで圧縮/解凍(.tar.xz)
-C [dir] 指定したディレクトリに展開
--exclude=[pattern] 指定したパターンに一致するファイルを除外

例:

tar -cvf archive.tar file1 file2 dir1 - ファイルとディレクトリをアーカイブ化
tar -xvf archive.tar - アーカイブを展開
tar -tvf archive.tar - アーカイブの内容を一覧表示
tar -czvf archive.tar.gz directory/ - ディレクトリをgzipで圧縮してアーカイブ化
tar -xzvf archive.tar.gz - gzip圧縮されたアーカイブを展開
tar -xzvf archive.tar.gz -C /path/to/extract - 指定したディレクトリに展開
tar -czvf backup-$(date +%Y%m%d).tar.gz /home/user/data - 日付を含むバックアップファイルを作成
tar --exclude='*.log' --exclude='tmp/' -czvf archive.tar.gz directory/ - 特定のファイルやディレクトリを除外してアーカイブ化
tar -czvf - directory/ | ssh user@remote "cat > archive.tar.gz" - アーカイブをリモートサーバーに直接転送
tar -xvf archive.tar --wildcards '*.txt' - アーカイブから特定のパターンに一致するファイルのみを展開

gzip/gunzip - gzip形式の圧縮/解凍

ファイルをgzip形式で圧縮したり、解凍したりします。

コマンド/オプション 説明
gzip [file] ファイルを圧縮(元のファイルは削除され、.gzファイルが作成される)
gzip -k [file] 元のファイルを保持したまま圧縮
gzip -d [file.gz] ファイルを解凍(gunzipと同等)
gzip -l [file.gz] 圧縮ファイルの情報を表示
gzip -[1-9] 圧縮レベルを指定(1が最速で圧縮率低、9が最遅で圧縮率高)
gunzip [file.gz] gzipファイルを解凍

例:

gzip file.txt - ファイルを圧縮(file.txt.gzが作成され、元のファイルは削除される)
gzip -k file.txt - 元のファイルを保持したまま圧縮
gzip -9 file.txt - 最高圧縮率でファイルを圧縮
gunzip file.txt.gz - 圧縮ファイルを解凍
gzip -d file.txt.gz - 圧縮ファイルを解凍(gunzipと同等)
find . -type f -name "*.log" -exec gzip {} \; - すべてのログファイルを圧縮
gzip -c file.txt > file.txt.gz - 標準出力に圧縮結果を出力し、リダイレクトで保存(元ファイルを保持)
gzip -r directory/ - ディレクトリ内のすべてのファイルを再帰的に圧縮
gzip -tv file.txt.gz - 圧縮ファイルの整合性をテスト

bzip2/bunzip2 - bzip2形式の圧縮/解凍

ファイルをbzip2形式で圧縮したり、解凍したりします。gzipより圧縮率が高いが処理時間も長い。

コマンド/オプション 説明
bzip2 [file] ファイルを圧縮(元のファイルは削除され、.bz2ファイルが作成される)
bzip2 -k [file] 元のファイルを保持したまま圧縮
bzip2 -d [file.bz2] ファイルを解凍(bunzip2と同等)
bzip2 -[1-9] 圧縮レベルを指定(1が最速で圧縮率低、9が最遅で圧縮率高)
bunzip2 [file.bz2] bzip2ファイルを解凍

例:

bzip2 file.txt - ファイルを圧縮(file.txt.bz2が作成され、元のファイルは削除される)
bzip2 -k file.txt - 元のファイルを保持したまま圧縮
bunzip2 file.txt.bz2 - 圧縮ファイルを解凍
bzip2 -d file.txt.bz2 - 圧縮ファイルを解凍(bunzip2と同等)
bzip2 -v file.txt - 圧縮の詳細情報を表示
bzip2 -c file.txt > file.txt.bz2 - 標準出力に圧縮結果を出力し、リダイレクトで保存(元ファイルを保持)
find . -name "*.dat" -exec bzip2 -9 {} \; - すべての.datファイルを最高圧縮率で圧縮
tar -cf - directory/ | bzip2 > directory.tar.bz2 - tarとbzip2を組み合わせてディレクトリをアーカイブ化

xz - xz形式の圧縮/解凍

ファイルをxz形式で圧縮したり、解凍したりします。bzip2よりさらに圧縮率が高いが処理時間も長い。

オプション 説明
-z 圧縮(デフォルト)
-d 解凍
-k 元のファイルを保持
-l 圧縮ファイルの情報を表示
-[0-9] 圧縮レベルを指定(0が最速で圧縮なし、9が最遅で圧縮率高)

例:

xz file.txt - ファイルを圧縮(file.txt.xzが作成され、元のファイルは削除される)
xz -k file.txt - 元のファイルを保持したまま圧縮
xz -d file.txt.xz - 圧縮ファイルを解凍
xz -l file.txt.xz - 圧縮ファイルの情報を表示
xz -9 -e file.txt - 最高圧縮率と追加の圧縮フラグを使用して圧縮
xz -T0 large_file.dat - すべての利用可能なCPUスレッドを使用して圧縮(並列処理)
find . -name "*.log" -size +10M -exec xz {} \; - 10MB以上のすべてのログファイルを圧縮
tar -cf - directory/ | xz -9 > directory.tar.xz - tarとxzを組み合わせて高圧縮率でディレクトリをアーカイブ化

zip/unzip - ZIP形式の圧縮/解凍

ファイルをZIP形式で圧縮したり、解凍したりします。Windows/macOSとの互換性が高い。

コマンド/オプション 説明
zip [archive.zip] [files] ファイルをZIP形式で圧縮
zip -r [archive.zip] [directory] ディレクトリを再帰的に圧縮
zip -u [archive.zip] [files] 既存のZIPアーカイブを更新
zip -e [archive.zip] [files] パスワード保護付きで圧縮
unzip [archive.zip] ZIPアーカイブを解凍
unzip -l [archive.zip] ZIPアーカイブの内容を一覧表示
unzip -d [directory] [archive.zip] 指定したディレクトリにZIPアーカイブを解凍

例:

zip archive.zip file1.txt file2.txt - 複数のファイルを圧縮
zip -r archive.zip directory/ - ディレクトリを再帰的に圧縮
unzip archive.zip - ZIPアーカイブを解凍
unzip -l archive.zip - ZIPアーカイブの内容を一覧表示
unzip archive.zip -d /path/to/extract - 指定したディレクトリに解凍
zip -e secure.zip confidential.txt - パスワード保護付きでファイルを圧縮
zip -9 -r backup.zip documents/ -x "*.tmp" "*/temp/*" - 最高圧縮率で特定のファイルを除外して圧縮
find . -name "*.jpg" -mtime -7 | zip -@ recent_photos.zip - 過去7日以内に変更された画像ファイルを圧縮
unzip -j archive.zip "*.txt" -d /path/to/extract - パスを無視してテキストファイルのみを特定のディレクトリに解凍

7z - 7-Zip形式の圧縮/解凍

7-Zipは高圧縮率のアーカイブ形式で、様々な形式のアーカイブを扱えます。

コマンド/オプション 説明
7z a [archive.7z] [files] ファイルをアーカイブに追加(圧縮)
7z x [archive.7z] アーカイブを展開(パスを保持)
7z e [archive.7z] アーカイブを展開(パスを無視)
7z l [archive.7z] アーカイブの内容を一覧表示
7z t [archive.7z] アーカイブの整合性をテスト
7z u [archive.7z] [files] アーカイブを更新

例:

7z a archive.7z file1.txt file2.txt - ファイルを7z形式で圧縮
7z a -r archive.7z directory/ - ディレクトリを再帰的に圧縮
7z x archive.7z - 7zアーカイブを展開
7z l archive.7z - 7zアーカイブの内容を一覧表示
7z x archive.7z -o/path/to/extract - 指定したディレクトリに展開
7z a -p archive.7z confidential_files/ - パスワード保護付きでアーカイブを作成
7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on archive.7z directory/ - 高度な圧縮設定でアーカイブを作成
7z x archive.7z -r "*.txt" -o/path/to/extract - テキストファイルのみを抽出
find . -type f -size +10M | 7z a -si large_files.7z - 10MB以上のファイルを標準入力から圧縮

zcat/zless - 圧縮ファイルの内容表示

圧縮ファイルを解凍せずに内容を表示します。

コマンド 説明
zcat [file.gz] gzip圧縮ファイルの内容を表示
bzcat [file.bz2] bzip2圧縮ファイルの内容を表示
xzcat [file.xz] xz圧縮ファイルの内容を表示
zless [file.gz] gzip圧縮ファイルの内容をページャーで表示
bzless [file.bz2] bzip2圧縮ファイルの内容をページャーで表示
xzless [file.xz] xz圧縮ファイルの内容をページャーで表示

例:

zcat file.txt.gz - gzip圧縮ファイルの内容を表示
bzcat file.txt.bz2 - bzip2圧縮ファイルの内容を表示
zcat file.txt.gz | grep "pattern" - 圧縮ファイル内のテキストを検索
zless large_file.txt.gz - 大きな圧縮ファイルの内容をページャーで表示
zcat file1.gz file2.gz > combined.txt - 複数の圧縮ファイルの内容を結合
zcat log.gz | awk '/ERROR/ {print $0}' - 圧縮ログファイル内のエラーを抽出
find . -name "*.log.gz" -exec zcat {} \; | grep "CRITICAL" - 複数の圧縮ログファイルから重要なメッセージを検索
zcat -f file.txt file.txt.gz - 圧縮・非圧縮ファイルの両方を処理(-fオプション)