「Linuxコマンド - ファイルの圧縮と解凍」の版間の差分

 
(同じ利用者による、間の30版が非表示)
40行目: 40行目:
  # または
  # または
  tar Jxvf xxxx.tar.xz
  tar Jxvf xxxx.tar.xz
<br><br>
== xz形式 ==
圧縮<br>
圧縮率を0~9で指定することができる。<br>
<code>-0</code>オプションは、圧縮率が低いが高速に処理することができる。<br>
<code>-9</code>オプションは、時間が掛かるが圧縮率は高くなる。<br>
# 元のファイルを削除する
xz <ファイル名>
# 元のファイルを削除しない
xz -k <ファイル名>
# 圧縮率を指定する
xz -0 <ファイル名>
xz -9 <ファイル名>
<br>
解凍<br>
# 圧縮ファイルを削除する
xz -d <XZ形式のファイル>.xz
unxz -d <XZ形式のファイル>.xz
# 圧縮ファイルを削除しない
xz -dk <XZ形式のファイル>.xz
unxz -dk <XZ形式のファイル>.xz
<br>
その他<br>
# 圧縮ファイル内のファイルを一覧表示する
xz -l <XZ形式のファイル>.xz
unxz -l <XZ形式のファイル>.xz
<br><br>
<br><br>


55行目: 85行目:
*: <code>tar xf lzip-<バージョン>.tar.lz</code>
*: <code>tar xf lzip-<バージョン>.tar.lz</code>
*: <code>cd lzip-<バージョン></code>
*: <code>cd lzip-<バージョン></code>
*: <br>
*: ビルド用ディレクトリを作成する。
*: ビルド用ディレクトリを作成する。
*: <code>mkdir build && cd build</code>
*: <code>mkdir build && cd build</code>
*: <br>
*: Lzipをビルドおよびインストールする。
*: Lzipをビルドおよびインストールする。
*: <code>../configure --prefix=<Lzipのインストールディレクトリ></code>
*: <code>../configure --prefix=<Lzipのインストールディレクトリ></code>
*: <code>make -j $(nproc)</code>
*: <code>make -j $(nproc)</code>
*: <code>make install</code>
*: <code>make install</code>
*: <br>
*: ~/.profileファイル等に環境変数PATHを追記する。
*: ~/.profileファイル等に環境変数PATHを追記する。
*: <code>vi ~/.profile</code>
*: <code>vi ~/.profile</code>
66行目: 99行目:
<br>
<br>
圧縮<br>
圧縮<br>
  tar --lzip -cf  xxxx.tar.lz <ファイルのパスまたはディレクトリのパス>
  tar --lzip -cf  <ファイル名>.tar.lz <ファイルのパスまたはディレクトリのパス>
  # または
  # または
  tar --lzip -cvf xxxx.tar.lz <ファイルのパスまたはディレクトリのパス>
  tar --lzip -cvf <ファイル名>.tar.lz <ファイルのパスまたはディレクトリのパス>
<br>
<br>
圧縮(圧縮率を上げる場合)<br>
圧縮(圧縮率を上げる場合)<br>
  tar cf xxxx.tar <ファイルのパスまたはディレクトリのパス>; lzip -9k xxxx.tar
  tar cf <ファイル名>.tar <ファイルのパスまたはディレクトリのパス>; lzip -9k <ファイル名>.tar
<br>
<br>
解凍<br>
解凍<br>
  tar xf  xxxx.tar.lz
  tar xf  <ファイル名>.tar.lz
  # または
  # または
  tar xvf  xxxx.tar.lz
  tar xvf  <ファイル名>.tar.lz
<br><br>
<br><br>


== tar形式 ==
== tar形式 ==
圧縮<br>
圧縮<br>
  tar cf  xxxx.tar <ファイルのパスまたはディレクトリのパス>
  tar cf  <ファイル名>.tar <ファイルのパスまたはディレクトリのパス>
  # または
  # または
  tar cvf xxxx.tar <ファイルのパスまたはディレクトリのパス>
  tar cvf <ファイル名>.tar <ファイルのパスまたはディレクトリのパス>
<br>
<br>
解凍<br>
解凍<br>
  tar xf  xxxx.tar
  tar xf  <ファイル名>.tar
  # または
  # または
  tar xvf xxxx.tar
  tar xvf <ファイル名>.tar
<br><br>
 
== zip形式 ==
圧縮<br>
zip r xxxx.zip ディレクトリ名
解凍<br>
unzip xxxx.zip
<br>
Windows上で日本語ファイル名のファイルをzipで圧縮して、Linux上にてunzipコマンドで解凍すると文字化けすることがあるが、<br>
unarで解凍すると文字化けしない。<br>
unar xxxx.zip
<br>
<br>
<center>
<center>
'''表. tarコマンドにおけるオプションの意味'''<br>
{| class="wikitable" | style="background-color:#fefefe;"
{| class="wikitable" | style="background-color:#fefefe;"
|+ tarコマンドにおけるオプションの意味
|-
|-
! style="background-color:#66CCFF;" | オプション  
! style="background-color:#66CCFF;" | オプション  
124行目: 146行目:
</center>
</center>
<br><br>
<br><br>
== zip形式 ==
圧縮<br>
# パスワードなし
zip -r <ファイル名>.zip ディレクトリ名
# パスワード付き
zip -e -r <ファイル名>.zip <ディレクトリ名>  または  $ zip -e -r --password=<パスワード> <ファイル名>.zip <ディレクトリ名>
<br>
解凍<br>
unzip <ファイル名>.zip  # パスワード付きのzipファイルの場合、インタラクティブに2回とも同じパスワードの入力を求められる
# または
unzip -P <パスワード> <ファイル名>.zip
<br>
Windows上で日本語ファイル名のファイルをzipで圧縮して、Linux上にてunzipコマンドで解凍すると文字化けすることがあるが、<br>
unarで解凍すると文字化けしない。<br>
unar <ファイル名>.zip
<br><br>
== 7zip ==
圧縮<br>
7z a <圧縮後のファイル名>.7z <圧縮元のファイル名またはディレクトリ名>
解凍<br>
7z e <圧縮されたファイル名>.7z
<br><br>
== Zstandard ==
==== Zstandardとは ====
2016年の8月にMeta社(旧Facebook)がオープンソース化した圧縮アルゴリズムである。<br>
リアルタイム圧縮を重要視しており、圧縮率を維持しながら、高い圧縮速度と伸長速度、使用メモリ量の削減を実現している。<br>
<br>
また、辞書を作成することにより、更に圧縮率を高めることが可能である。<br>
多様な言語(Java、Swift、Go、Python等)で実装されている。<br>
<br>
==== Zstandardのインストール ====
# RHEL
sudo dnf install zstd
# SUSE
sudo zypper install zstd libzstd1
<br>
==== 圧縮 ====
===== ファイルの圧縮 =====
ファイルを圧縮する。<br>
出力ファイル名は、<ファイル名>.zstとなる。<br>
zstd <ファイル名>
# 圧縮前のファイルおよびディレクトリを削除する場合
zstd --rm <ファイル名>
<br>
出力ファイル名を指定して圧縮する。<br>
zstd <ファイル名> -o <出力ファイル名>.zst
# 圧縮前のファイルおよびディレクトリを削除する場合
zstd --rm <ファイル名> -o <出力ファイル名>.zst
<br>
===== ディレクトリの圧縮 =====
ディレクトリを圧縮する。<br>
# まず、Tarballファイルにする
tar cf <Tarballファイル名>.tar <ディレクトリ名>
# TasrballファイルをZstandard形式で圧縮する
zstd <Tarballファイル名>.tar
## または
zstd <Tarballファイル名>.tar -o <圧縮後のファイル名>.zst
## または
zstd <圧縮後のファイル名>.zst <Tarballファイル名>.tar
<br>
アーカイブと圧縮を1度で実行することもできる。<br>
tar cf - <ディレクトリ名> | zstd -o <ディレクトリ名>.tar.zst
# または
tar cf - <ディレクトリ名> | zstd -<レベル番号> -o <ディレクトリ名>.tar.zst
<br>
<code>tar</code>コマンドで、ディレクトリをtar.zst形式に圧縮することもできる。<br>
<code>tar</code>コマンドでZstandard形式の圧縮設定を行う場合は、<code>-I</code>オプションを付加してzstdコマンドとzstdのオプションを指定する。<br>
tar --zstd -cf <圧縮後のファイル名>.tar.zst <圧縮前のディレクトリ名>
# 圧縮率を設定する場合
# 以下の例では、圧縮率を最大に指定している
tar -I 'zstd --ultra -22' -cf <圧縮後のファイル名>.tar.zst <圧縮前のディレクトリ名>
<br>
===== 圧縮率の設定 =====
圧縮レベルを1〜19(デフォルト : 3)で指定して圧縮する。<br>
zstd -11 <ファイル名>
<br>
<code>--ultra</code>オプションを付加することにより、圧縮レベルを20以上にすることもできる。(最大圧縮レベル : 22)<br>
zstd --ultra -22 <ファイル名>
<br>
===== 再帰的な圧縮 =====
ディレクトリ内のファイル群を再帰的に圧縮する。<br>
Zstandardは圧縮アルゴリズムであるため、ファイルアーカイブ機能は存在しない。<br>
zstd -r <ディレクトリ名またはファイル名>
<br>
===== マルチスレッドの使用 =====
マルチスレッドを使用して圧縮することにより、処理時間を短縮することもできる。<br>
<code>-T</code>オプションでは、スレッド数を指定することができる。<br>
<code>-T</code>オプションの初期値は<code>1</code>、<code>0</code>を指定することにより、空いているスレッドを全て使用する。<br>
zstd --ultra -22 -T0 <ファイル名>
<br>
<code>-o</code>オプションを付加することにより、出力するファイル名を変更することができる。<br>
zstd --ultra -22 -T0 <圧縮元のファイル名> -o <出力するファイル名>
<br>
==== 解凍 ====
zstd -d <ディレクトリ名またはファイル名>.zst
# または
unzstd <ディレクトリ名またはファイル名>.zst
<br><br>
== パスワードの設定 ==
XZ形式やZStandard形式で圧縮する時に、パスワードを設定する機能はない。<br>
これらの圧縮形式は、データの圧縮に特化しており、暗号化機能を持たないためである。<br>
<br>
しかし、暗号化を行う場合は、圧縮後に他のツールを使用してファイルを暗号化する。<br>
<br>
==== パスワードを設定して圧縮 ====
* OpenSSLを使用する場合
*: まず、ファイルを圧縮する。
*: <code>tar Jcf <圧縮後のファイル名>.tar.xz <圧縮前のファイルまたはディレクトリ></code>
*: 次に、OpenSSLで暗号化する。
*: このコマンドも、ファイルに対してパスワード保護をかける。
*: <code>openssl enc -aes-256-cbc -salt -pbkdf2 -in <圧縮後のファイル名>.tar.xz -out <圧縮後のファイル名>.tar.xz.enc</code>
<br>
* GPGを使用する場合
*: まず、ファイルを圧縮する。
*: <code>tar Jcf <圧縮後のファイル名>.tar.xz <圧縮前のファイルまたはディレクトリ></code>
*: 次に、GPGで暗号化する。
*: このコマンドにより、圧縮ファイルは<u><圧縮後のファイル名>.tar.xz.gpg</u>ファイルを生成して、パスワードを設定することができる。
*: 対称暗号化 (-cオプション) : 単純にパスワードのみで暗号化する場合や複数人で共有する場合等の一時的な暗号化に適している。
*: <code>gpg -c <圧縮後のファイル名>.tar.xz</code>
*: <br>
*: 公開鍵暗号化 (--encryptオプション) : 特定の受取人に対して安全に暗号化する場合や受取人のみが復号できるため、セキュリティが高い。
*: この場合、ファイルを復号するには、対応する秘密鍵とパスフレーズが必要となる。
*: <code>gpg --encrypt --recipient <特定の受取人  例: recipient@example.com> <圧縮後のファイル名>.tar.xz</code>
<br>
==== パスワードを指定して解凍 ====
パスワード保護された圧縮ファイルを解凍する場合、使用した暗号化ツールに応じて異なるコマンドを使用する。<br>
<br>
* OpenSSLで暗号化されたファイルの場合
*: まず、復号して元の圧縮ファイルを取得する。
*: こちらもパスワードの入力が求められる。復号後に<圧縮後のファイル名>.tar.xzが生成される。
*: <code>openssl enc -d -aes-256-cbc -pbkdf2 -in <圧縮後のファイル名>.tar.xz.enc -out <圧縮後のファイル名>.tar.xz</code>
*: 次に、圧縮ファイルを解凍する。
*: <code>tar xf <圧縮後のファイル名>.tar.xz</code>
<br>
* GPGで暗号化されたファイルの場合
*: まず、復号して元の圧縮ファイルを取得する。
*: このコマンドでは、パスワードの入力が求められる。復号後に<圧縮後のファイル名>.tar.xzというファイルが生成される。
*: <code>gpg -d -o archive.tar.xz archive.tar.xz.gpg</code>
*: 次に、圧縮ファイルを解凍する。
*: <code>tar xf <圧縮後のファイル名>.tar.xz</code>
<br><br>
== その他 ==
==== debファイル ====
# 展開
ar xf <debファイル>
# 作成
tar -cf data.tar <データファイル>
gunzip data.tar
tar -cf control.tar control postinstall prerm
gunzip control.tar
ar r <作成するdebファイル名> debian-binary control.tar.gz data.tar.gz  # アーカイブする順は、debian-binary、control.tar.gz、data.tar.gzの順である必要がある
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]