Linuxで7zipを使うコマンドまとめ|7zのインストールから圧縮・解凍まで

Linux

Windowsでよく使われる「7-Zip」ですが、Linuxでも**7z形式(.7z)**を扱いたい場面は多いですよね。

  • 大容量のファイルを高圧縮でまとめたい
  • Windowsユーザーから7zファイルを渡されて解凍したい
  • パスワード付きアーカイブを作成したい
  • サーバーのログファイルを効率的にバックアップしたい
  • tarよりも高い圧縮率でファイルを保存したい

こんなとき、Linuxでも7zコマンドを使えば簡単に7zipを扱えます。

この記事では、Linuxでの7zipコマンド(7z)の使い方を、インストールから圧縮・解凍、便利なオプション、トラブル対処まで初心者にもわかりやすく解説します。

スポンサーリンク
  1. 7zコマンドのインストール方法
    1. Debian/Ubuntu系
    2. CentOS/RHEL/Fedora系
    3. Arch Linux
    4. openSUSE
    5. インストール確認
  2. 基本的な圧縮コマンド
    1. シンプルな圧縮
    2. 圧縮レベルの指定
    3. 特定のファイル形式を除外
  3. 基本的な解凍コマンド
    1. カレントディレクトリに解凍
    2. 指定ディレクトリに解凍
    3. フラットに解凍(ディレクトリ構造を無視)
    4. 特定のファイルのみ解凍
  4. アーカイブの中身を確認
    1. ファイル一覧の表示
    2. 詳細情報の表示
    3. ファイル数とサイズの概要
  5. パスワード付き圧縮・解凍
    1. パスワード付きで圧縮
    2. パスワード付きアーカイブの解凍
    3. ファイル名も暗号化
  6. 高度なオプションと使用例
    1. 分割アーカイブの作成
    2. 分割アーカイブの解凍
    3. 圧縮方式の指定
    4. 進行状況の表示
    5. テストと整合性チェック
  7. よく使う実用的なコマンド例
    1. ログファイルの定期バックアップ
    2. Webサイトのバックアップ
    3. データベースダンプの圧縮
    4. 古いファイルの圧縮
  8. 他の圧縮形式との比較
    1. 7z vs tar.gz vs zip
    2. ファイルサイズ比較例
  9. トラブルシューティング
    1. よくあるエラーと対処法
    2. 破損したアーカイブの修復
  10. 便利なエイリアスとスクリプト
    1. よく使うコマンドのエイリアス
    2. 自動バックアップスクリプト
  11. よくある質問と回答
    1. Q: 7zとzipのどちらを使うべき?
    2. Q: 大量のファイルを効率的に圧縮するには?
    3. Q: メモリ使用量を抑えたい場合は?
  12. まとめ:7zコマンドをマスターして効率的なファイル管理を

7zコマンドのインストール方法

ディストリビューションによってパッケージ名が異なります。以下の手順でインストールしましょう。

Debian/Ubuntu系

sudo apt update
sudo apt install p7zip-full

インストールされるコマンド

  • 7z:メインコマンド
  • 7za:軽量版
  • 7zr:.7z専用版

CentOS/RHEL/Fedora系

CentOS 7/RHEL 7

sudo yum install epel-release
sudo yum install p7zip p7zip-plugins

CentOS 8以降/Fedora

sudo dnf install p7zip p7zip-plugins

Arch Linux

sudo pacman -S p7zip

openSUSE

sudo zypper install p7zip

インストール確認

インストールが完了したら、以下のコマンドで確認できます。

7z --help

または

7z

バージョン情報とコマンド一覧が表示されれば成功です。

基本的な圧縮コマンド

シンプルな圧縮

ディレクトリ全体を圧縮

7z a archive.7z /path/to/directory

複数ファイルを圧縮

7z a documents.7z file1.txt file2.pdf file3.jpg

ワイルドカードを使った圧縮

7z a logs.7z /var/log/*.log

圧縮レベルの指定

7zでは圧縮レベルを0〜9で指定できます。

# 最高圧縮(時間がかかるが最小サイズ)
7z a -mx=9 archive.7z /path/to/data

# 高速圧縮(圧縮率は低いが速い)
7z a -mx=1 archive.7z /path/to/data

# 標準圧縮(バランス型)
7z a -mx=5 archive.7z /path/to/data

圧縮レベルの目安

  • 0:無圧縮(最速)
  • 1:最速圧縮
  • 3:高速圧縮
  • 5:標準圧縮(デフォルト)
  • 7:高圧縮
  • 9:最高圧縮(最遅)

特定のファイル形式を除外

# .tmp と .log ファイルを除外
7z a archive.7z /path/to/data -x!*.tmp -x!*.log

# 隠しファイルを除外
7z a archive.7z /path/to/data -x!.*

基本的な解凍コマンド

カレントディレクトリに解凍

7z x archive.7z

xコマンドの特徴

  • ディレクトリ構造を保持
  • 元のパス情報を維持

指定ディレクトリに解凍

7z x archive.7z -o/tmp/unpack

注意点

  • -oとディレクトリパスの間にスペースは入れない
  • 出力先ディレクトリが存在しない場合は自動作成

フラットに解凍(ディレクトリ構造を無視)

7z e archive.7z

eコマンドの特徴

  • すべてのファイルをカレントディレクトリに展開
  • ディレクトリ構造は無視される

特定のファイルのみ解凍

# .txt ファイルのみ解凍
7z x archive.7z *.txt

# 特定のディレクトリのみ解凍
7z x archive.7z docs/

アーカイブの中身を確認

ファイル一覧の表示

7z l archive.7z

表示される情報

  • ファイル名
  • ファイルサイズ
  • 圧縮後サイズ
  • 変更日時
  • 属性

詳細情報の表示

7z l -slt archive.7z

追加で表示される情報

  • CRC32チェックサム
  • 圧縮方式
  • ブロック情報

ファイル数とサイズの概要

7z l archive.7z | tail -3

これで合計ファイル数、総サイズ、圧縮後サイズが表示されます。

パスワード付き圧縮・解凍

パスワード付きで圧縮

7z a -pMySecretPass archive.7z /path/to/data

より安全な方法(パスワードを隠す)

7z a archive.7z /path/to/data
# パスワードの入力を求められるので入力

パスワード付きアーカイブの解凍

7z x archive.7z
# パスワードの入力を求められるので入力

コマンドラインでパスワード指定

7z x -pMySecretPass archive.7z

ファイル名も暗号化

7z a -pMyPass -mhe=on archive.7z /path/to/data

-mhe=onオプションでファイル名も暗号化されます。

高度なオプションと使用例

分割アーカイブの作成

# 100MBずつに分割
7z a -v100m archive.7z /path/to/large_data

生成されるファイル

  • archive.7z.001
  • archive.7z.002
  • archive.7z.003…

分割アーカイブの解凍

7z x archive.7z.001

最初のファイルを指定するだけで、すべての分割ファイルが自動で処理されます。

圧縮方式の指定

# LZMA2方式(デフォルト、最高圧縮率)
7z a -m0=lzma2 archive.7z /path/to/data

# PPMd方式(テキストファイルに効果的)
7z a -m0=ppmd archive.7z /path/to/text_files

# BZip2方式(バランス型)
7z a -m0=bzip2 archive.7z /path/to/data

進行状況の表示

7z a archive.7z /path/to/data -bb1

-bb1オプションで詳細な進行状況が表示されます。

テストと整合性チェック

# アーカイブの整合性をチェック
7z t archive.7z

# CRCチェックを含む詳細テスト
7z t -bb3 archive.7z

よく使う実用的なコマンド例

ログファイルの定期バックアップ

#!/bin/bash
DATE=$(date +%Y%m%d)
7z a -mx=9 /backup/logs_$DATE.7z /var/log/*.log

Webサイトのバックアップ

7z a -mx=7 -pBackupPass website_backup.7z /var/www/html/ -x!*.tmp -x!cache/*

データベースダンプの圧縮

mysqldump -u user -p database | 7z a -si database_backup.7z

古いファイルの圧縮

find /path/to/files -name "*.log" -mtime +30 | xargs 7z a old_logs.7z

他の圧縮形式との比較

7z vs tar.gz vs zip

形式圧縮率速度互換性パスワード保護
.7z最高遅い中程度強力
.tar.gz高い速い高いなし
.zip標準速い最高弱い

ファイルサイズ比較例

1GBのログファイルを圧縮した場合の例:

# tar.gz(gzip -9相当)
tar -czf logs.tar.gz /var/log/  # 約200MB

# 7z(標準圧縮)
7z a logs.7z /var/log/          # 約150MB

# 7z(最高圧縮)
7z a -mx=9 logs.7z /var/log/    # 約120MB

トラブルシューティング

よくあるエラーと対処法

エラー1:「7z: command not found」

# 原因:7zがインストールされていない
# 対処:インストールを実行
sudo apt install p7zip-full

エラー2:「Wrong password?」

# 原因:パスワードが間違っている
# 対処:正しいパスワードを確認
7z x archive.7z  # 再度パスワードを入力

エラー3:「No files to process」

# 原因:指定したファイルが存在しない
# 対処:ファイルパスを確認
ls -la /path/to/file  # ファイルの存在確認

エラー4:「Can not open output file」

# 原因:書き込み権限がない
# 対処:権限を確認し、適切なディレクトリで実行
chmod u+w /output/directory

破損したアーカイブの修復

# アーカイブの整合性チェック
7z t archive.7z

# 可能な範囲でファイルを抽出
7z x archive.7z -y

便利なエイリアスとスクリプト

よく使うコマンドのエイリアス

.bashrc.zshrcに追加:

# 最高圧縮での7z作成
alias 7zmax='7z a -mx=9'

# パスワード付き圧縮
alias 7zpass='7z a -mhe=on'

# ファイル一覧表示
alias 7zlist='7z l'

# テスト
alias 7ztest='7z t'

自動バックアップスクリプト

#!/bin/bash
# backup.sh

SOURCE_DIR="/home/user/documents"
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
ARCHIVE_NAME="backup_$DATE.7z"

echo "バックアップを開始します..."
7z a -mx=7 -p "$BACKUP_DIR/$ARCHIVE_NAME" "$SOURCE_DIR" -x!*.tmp -x!*.cache

if [ $? -eq 0 ]; then
    echo "バックアップが完了しました: $ARCHIVE_NAME"
else
    echo "バックアップに失敗しました"
    exit 1
fi

よくある質問と回答

Q: 7zとzipのどちらを使うべき?

A: 用途によって使い分けましょう。

7zがおすすめの場合

  • 高い圧縮率が必要
  • セキュリティを重視(強力なパスワード保護)
  • Linuxサーバーでのバックアップ

zipがおすすめの場合

  • 他の人との共有が多い
  • 古いシステムとの互換性が必要
  • 解凍速度を重視

Q: 大量のファイルを効率的に圧縮するには?

A: 以下のテクニックを組み合わせましょう。

# 並列処理で高速化(複数のCPUコアを使用)
7z a -mmt=4 archive.7z /path/to/data

# 適度な圧縮レベルで時間短縮
7z a -mx=5 archive.7z /path/to/data

# 不要なファイルを除外
7z a archive.7z /path/to/data -x!*.tmp -x!*.log -x!.git/*

Q: メモリ使用量を抑えたい場合は?

A: 以下のオプションでメモリ使用量を制限できます。

# 辞書サイズを制限(メモリ使用量を抑制)
7z a -md=16m archive.7z /path/to/data

# ソリッドブロックサイズを制限
7z a -ms=64m archive.7z /path/to/data

まとめ:7zコマンドをマスターして効率的なファイル管理を

Linuxでの7zコマンドは、以下のような場面で非常に有用です。

基本操作

  • 圧縮7z a archive.7z /path/to/data
  • 解凍7z x archive.7z
  • 一覧表示7z l archive.7z
  • テスト7z t archive.7z

高度な機能

  • 高圧縮-mx=9オプション
  • パスワード保護-pオプション
  • 分割アーカイブ-vオプション
  • 進行状況表示-bb1オプション

実用的な使い方

  • サーバーログの定期バックアップ
  • 大容量データの効率的な保存
  • セキュアなファイル共有
  • ストレージ容量の節約

コメント

タイトルとURLをコピーしました