Linux
 Computer >> コンピューター >  >> システム >> Linux

Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

ファイルの容量を節約したり、複数のファイルをまとめて相手に送ったりするために利用できる圧縮ツールは数多くあります。その中でも7-Zipは、高い圧縮性能と優れた圧縮率を完全無料で実現できることから、多くのユーザーに選ばれる定番ツールとなっています。

圧縮というと複雑な操作が必要そうに感じるかもしれませんが、フォルダとそのサブフォルダの中身をすべて1つのアーカイブにまとめたいだけであれば、話はぐっと簡単になります。そこで本記事では、Bashのエイリアス機能と7zのコマンドライン版を組み合わせて、シンプルなコマンド1つでファイルを圧縮パッケージ化する方法を紹介します。

p7zipをインストールする

7-Zipは最も人気のある圧縮ツールのため、お使いのLinuxディストリビューションにすでにインストールされている可能性が高いです。確認するには、ターミナルで「7z」コマンドを実行してみてください。インストールされていない場合は、Ubuntu/Debian系ディストリビューションなら以下のコマンドで導入できます。

sudo apt-get install p7zip-full

Bashエイリアスファイルを作成する

Bashのエイリアスを使うと、コマンドや複数コマンドの連続処理を短い単語に割り当てられます。エイリアスを追加する最も手軽な方法は「~/.bashrc」ファイルの末尾に直接書き込むことですが、利便性と管理のしやすさを考えると、専用の別ファイルにまとめるのがベストプラクティスとされています。

このファイルはすでに存在しており、Bashの設定から参照されている可能性もあります。「~/.bashrc」をお好みのテキストエディタで開き、以下の記述があるかどうかを確認してください。

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

見つからない場合は、ファイルの末尾(既存の記述の後ろ)に追加してください。

Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

7-Zipのオプションを把握しておく

ターミナルで7-Zipを実行すると、コマンドラインオプションの一覧を確認できます。より詳細な情報が必要な場合は、公式ユーザーガイドを参照するか、以下のコマンドでmanページをチェックしましょう。

man 7z

これらの情報は、独自の圧縮コマンドを組み立てる際に役立ちます。ただし、本記事で紹介するコマンドで大半のニーズはカバーできるはずなので、そのままコピーして自分の.bash_aliasesファイルに貼り付けても問題ありません。

Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

最高圧縮レベルのエイリアスを作成する

お好みのテキストエディタ(ここではnanoを使用)で「~/.bash_aliases」ファイルを開き、以下のように入力します。

alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'
Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

alias 75は、「75」という名前の新コマンドを作成することを意味します。以降はこの「75」を使うだけで、ディレクトリ内のすべてのファイルとフォルダを1つの7-Zipアーカイブに圧縮できます。少し変わった名前にしたのは、「7zip 圧縮レベル5」の短縮形として覚えやすいためです。

7zは圧縮コマンド本体です。続くaは「新しいアーカイブにファイルを追加する」ことを表します。-rを付けると、p7zipは実行したフォルダのみに限定されず、すべてのサブフォルダとその内容も再帰的にアーカイブへ含めます。

-t7z -m0=lzma2は、LZMA2アルゴリズムを主体とした7z形式のアーカイブを作成する指定です。ほとんどのファイルタイプにおいて、この組み合わせが最高の圧縮率をもたらします。

-mx=9 -myx=9は、圧縮レベルと、7-Zipが圧縮対象ファイルを解析して最適な圧縮戦略を見つけ出すために費やす「労力の大きさ」に対応します。値が高いほど圧縮率が向上し、生成されるアーカイブは小さくなります。

最後に、-mqs=on -ms=onは「ソリッド(固形)圧縮」を有効にする設定です。ソリッド圧縮では類似ファイルが単一のデータ塊として圧縮されるため、さらなる高圧縮が期待できます。このオプションがオフにできるようになっているのは、便利である反面、2つのデメリットがあるためです。1つ目は圧縮時間が長くなること、2つ目は完成したアーカイブから個別のファイルだけを取り出せなくなることです。ソリッド圧縮では「ZIPから特定のファイルだけ抽出する」ような操作ができず、中身にアクセスするにはアーカイブ全体を展開する必要があります。

エイリアスを複製して圧縮レベルを調整する

まず最大圧縮率を実現するコマンドから始めたのは、後から要素を追加して拡張するのではなく、逆にパラメータを削除しながら設定値を下げていくだけで済むようにするためです。

既存のコマンドを5回コピーして、それぞれ独立した行に配置します。1行目はすでに最高圧縮レベルに達しているのでそのまま残し、残りの行は順番に不要なオプションを削除し、圧縮レベルを下げていきます。エイリアス名も各圧縮レベルに合わせて変更することを忘れないでください。

Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

手間を省きたい場合は、以下をそのままコピーして ~/.bash_aliases に貼り付けても構いません。

alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'
alias 74='7z a -r -t7z -m0=lzma2 -mx=9'
alias 73='7z a -r -t7z -m0=lzma2 -mx=7'
alias 72='7z a -r -t7z -m0=lzma2 -mx=5'
alias 71='7z a -r -t7z -m0=lzma2 -mx=3'
alias 70='7z a -r -t7z -m0=lzma2 -mx=1'

エイリアスを有効化する

変更を保存してターミナルに戻ったら、次のコマンドで新しいエイリアスを読み込み、有効化します。

source ~/.bashrc

これで新しい圧縮コマンドがすぐに使える状態になりました。p7zipは、圧縮対象を明示的に指定しない場合、実行したディレクトリ内のすべてのファイルをデフォルトで処理します。つまり、今後フォルダの中身を7zパッケージに圧縮したいときは、次のコマンドを入力するだけです。

75 archive_name

ここで「75」は先ほど作成した最高圧縮レベルのエイリアス、「archive_name」は作成される圧縮ファイルの名前です。「75」を他のエイリアス(70〜75)に置き換えれば、圧縮率は徐々に下がる代わりに処理速度が向上し、出力ファイル名も自由に指定できます。

Bashエイリアスを使えば7z圧縮はコマンド1つで完了!設定方法を徹底解説

ご不明な点がある場合は、下のコメント欄でお気軽にお知らせください。


  1. GNOMEでワークスペースを操作する方法|仮想デスクトップの基本と活用術

    ワークスペース(仮想デスクトップ)は、Linuxデスクトップ環境における主要な機能の一つです。長い歴史を持ち、ほぼすべてのLinuxウィンドウマネージャーで利用できます。しかし、GNOMEがバージョン3に移行した際、開発チームはミニマリズムを重視し、ワークスペース機能を目立たない形に隠してしまいました。そのため、この機能を使うには、あらかじめ存在を知っているか、偶然見つけるか、あるいは本記事のようなチュートリアルを読む必要があります。ここでは、GNOMEで複数のワークスペースを活用する方法を詳しく解説します。 ワークスペースとは?どこにあるの? ワークスペースとは、デスクトップのクローンを別

  2. タッチパッドでスクロールする方法|1本指・2本指スクロールと設定の有効化手順

    デスクトップPCとノートPCの違いとタッチパッドの基本デスクトップパソコンとノートパソコンは、ハードウェア構成において大きく異なります。両者の数多くの違いの中でも特徴的なのが、ノートパソコンでは標準でマウスの代わりにタッチパッドを使って画面上のポインターを操作するという点です。もちろん、外付けマウスを接続して入力デバイスとして使用することも可能ですが、ノートパソコンユーザーにとって標準のポインター入力デバイスはタッチパッドです。タッチパッドは決して特殊な技術ではありません。タッチパッドの上で指を動かせば、画面上のポインターもそれに合わせて動き、本体の右クリック・左クリックボタンでクリック操作を