Linuxでtarコマンドを使用してファイルを圧縮および抽出する方法
公開: 2022-07-23Linuxのtarコマンドは、「tarballs」とも呼ばれる.tar.gzまたは.tgzアーカイブファイルを作成するためによく使用されます。 このコマンドには多数のオプションがありますが、tarを使用してアーカイブをすばやく作成するには、数文字を覚えておく必要があります。 tarコマンドは、結果のアーカイブも抽出できます。
Linuxディストリビューションに含まれているGNUtarコマンドには、圧縮が統合されています。 .tarアーカイブを作成し、1つのコマンドでgzipまたはbzip2圧縮を使用して圧縮できます。 そのため、結果のファイルは.tar.gzファイルまたは.tar.bz2ファイルになります。
アップデート、7/18/22:この記事の正確性を確認し、最新バージョンのUbuntuおよびその他のLinuxディストリビューションでも機能することを確認できます。
ディレクトリ全体または単一のファイルを圧縮する
Linuxでディレクトリ全体または単一のファイルを圧縮するには、次のコマンドを使用します。 また、指定したディレクトリ内の他のすべてのディレクトリを圧縮します。つまり、再帰的に機能します。
tar -czvf name-of-archive.tar.gz / path / to / directory-or-file
これらのスイッチの実際の意味は次のとおりです。
- -c :アーカイブを作成します。
- -z :gzipを使用してアーカイブを圧縮します。
- -v :アーカイブの作成中にターミナルに進行状況を表示します。これは「verbose」モードとも呼ばれます。 これらのコマンドでは、vは常にオプションですが、便利です。
- -f :アーカイブのファイル名を指定できます。
現在のディレクトリに「stuff」という名前のディレクトリがあり、それをarchive.tar.gzという名前のファイルに保存するとします。 次のコマンドを実行します。
tar-czvfarchive.tar.gzのもの
または、現在のシステムの/ usr / local / somethingにディレクトリがあり、それをarchive.tar.gzという名前のファイルに圧縮するとします。 次のコマンドを実行します。
tar -czvf archive.tar.gz / usr / local / something
複数のディレクトリまたはファイルを一度に圧縮する
関連: Linuxターミナルからファイルを管理する方法:知っておくべき11のコマンド
tarは、単一のディレクトリを圧縮するために頻繁に使用されますが、複数のディレクトリ、複数の個別のファイル、またはその両方を圧縮するためにも使用できます。 単一のものではなく、ファイルまたはディレクトリのリストを提供するだけです。 たとえば、/ home / ubuntu / Downloadsディレクトリ、/ usr / local / stuffディレクトリ、および/home/ubuntu/Documents/notes.txtファイルを圧縮するとします。 次のコマンドを実行するだけです。
tar -czvf archive.tar.gz / home / ubuntu / Downloads / usr / local / stuff /home/ubuntu/Documents/notes.txt
バックアップしたいディレクトリまたはファイルをいくつでもリストしてください。
ディレクトリとファイルを除外する
場合によっては、ディレクトリ全体を圧縮したいが、特定のファイルやディレクトリを含めたくない場合があります。 これを行うには、除外するディレクトリまたはファイルごとに--exclude
スイッチを追加します。
たとえば、/ home / ubuntuを圧縮したいが、/ home / ubuntu/Downloadsおよび/home/ubuntu/.cacheディレクトリを圧縮したくないとします。 これがあなたがそれをする方法です:
tar -czvf archive.tar.gz / home / ubuntu --exclude = / home / ubuntu / Downloads --exclude = / home / ubuntu / .cache
--exclude
スイッチは非常に強力です。 ディレクトリやファイルの名前は使用せず、実際にはパターンを受け入れます。 あなたがそれでできることはもっとたくさんあります。 たとえば、次のコマンドを使用して、ディレクトリ全体をアーカイブし、すべての.mp4ファイルを除外できます。
tar -czvf archive.tar.gz / home / ubuntu --exclude=*。mp4
代わりにbzip2圧縮を使用してください
gzip圧縮は.tar.gzまたは.tgzファイルの作成に最も頻繁に使用されますが、tarはbzip2圧縮もサポートしています。 これにより、bzip2で圧縮されたファイル(多くの場合、.tar.bz2、.tar.bz、または.tbzファイル)を作成できます。 これを行うには、ここのコマンドのgzipの-zをbzip2の-jに置き換えるだけです。
Gzipの方が高速ですが、通常は圧縮率が少し低いため、ファイルがやや大きくなります。 Bzip2は低速ですが、圧縮率が少し高くなるため、ファイルがやや小さくなります。 Gzipもより一般的であり、デフォルトでgzipサポートを含む一部の簡素化されたLinuxシステムがありますが、bzip2サポートは含まれていません。 ただし、一般的に、gzipとbzip2は実質的に同じものであり、どちらも同じように機能します。
たとえば、stuffディレクトリを圧縮するために提供した最初の例の代わりに、次のコマンドを実行します。
tar-cjvfarchive.tar.bz2のもの
アーカイブを抽出する
アーカイブを取得したら、tarコマンドを使用してアーカイブを抽出できます。 次のコマンドは、archive.tar.gzの内容を現在のディレクトリに抽出します。
tar -xzvf archive.tar.gz
これは、 -x
スイッチが-c
スイッチに置き換わる点を除いて、上記で使用したアーカイブ作成コマンドと同じです。 これは、アーカイブを作成する代わりに、アーカイブを抽出することを指定します。
アーカイブの内容を特定のディレクトリに抽出したい場合があります。 これを行うには、コマンドの最後に-C
スイッチを追加します。 たとえば、次のコマンドは、archive.tar.gzファイルの内容を/tmpディレクトリに抽出します。
tar -xzvf archive.tar.gz -C / tmp
ファイルがbzip2で圧縮されたファイルの場合は、上記のコマンドの「z」を「j」に置き換えます。
これは、tarコマンドの最も簡単な使用法です。 このコマンドには多数の追加オプションが含まれているため、ここにすべてをリストすることはできません。 詳細については。 シェルでinfotarコマンドを実行して、tarコマンドの詳細情報ページを表示します。 完了したら、 qキーを押して情報ページを終了します。 tarのマニュアルをオンラインで読むこともできます。
グラフィカルなLinuxデスクトップを使用している場合は、デスクトップに含まれているファイル圧縮ユーティリティまたはファイルマネージャーを使用して、.tarファイルを作成または抽出することもできます。 Windowsでは、無料の7-Zipユーティリティを使用して.tarアーカイブを抽出および作成できます。
Linuxコマンド | ||
ファイル | tar・pv・cat・tac・chmod・grep・diff・sed・ar・man・pushd・popd・fsck・testdisk・seq・fd・pandoc・cd・$ PATH・awk・join・jq・fold・uniq・journalctl・tail・stat・ls・fstab・echo・less・chgrp・chown・rev・look・strings・type・rename・zip・unzip・mount・umount・install・fdisk・mkfs・rm・rmdir・rsync・df・gpg・vi・nano・mkdir・du・ln・パッチ・変換・rclone・シュレッド・srm | |
プロセス | エイリアス・screen・top・nice・renice・progress・strace・systemd・tmux・chsh・history・at・batch・free・which・dmesg・chfn・usermod・ps・chroot・xargs・tty・pinky・lsof・vmstat・タイムアウト・wall・yes・kill・sleep・sudo・su・time・groupadd・usermod・groups・lshw・shutdown・reboot・halt・poweroff・passwd・lscpu・crontab・date・bg・fg | |
ネットワーキング | netstat・ping・traceroute・ip・ss・whois・fail2ban・bmon・dig・finger・nmap・ftp・curl・wget・who・whoami・w・iptables・ssh-keygen・ufw |
関連:開発者と愛好家のための最高のLinuxラップトップ