アーカイブを取得しました タール または tar.gzファイルを正しく開きたい場合や、フォルダを移動する前にパッケージ化する必要がある場合、コマンドは簡単そうに見えますが、アーカイブがディレクトリツリー全体を間違った場所に再作成したり、残しておきたかったファイルを上書きしたりする瞬間に問題が発生します。
治療することをお勧めします タール このガイドでは、アーカイブの作成方法、内容の一覧表示方法、選択したフォルダへの展開方法、そして本番ファイルに影響を与える前に結果を確認する方法を説明します。

Tarはアーカイブのために使用されるものであり、必ずしも圧縮のために使用されるわけではない。
覚えておくべき重要なポイント: tarコマンドはファイルをグループ化し、パスを保持します。圧縮は、gzip、xz、またはbzip2を使用して、さらに追加されることがよくあります。そのため、次のような形式のファイルを見かけることがあります。 。タール、 .tar.gz、 .tgz、 .tar.xz または .tar.bz2。
未知のアーカイブを解凍する前に、個人フォルダまたは /var/wwwその内容を一覧表示してください。ルートフォルダがクリーンな状態なのか、複数のフラットファイルが含まれているのか、あるいは想定よりも長いパスが含まれているのかが分かります。
tar -tf backup.tar
tar -tzf backup.tar.gz
tar -tJf backup.tar.xz
ザ t リストには内容が記載されています。 f アーカイブファイルを示します。オプション z そして J これらはそれぞれgzipとxzを表します。
クリーンなtarアーカイブを作成する
フォルダの非圧縮アーカイブを作成するには、まず正しいディレクトリレベルに移動します。これは、 tar は、指定されたパスを記録します。。
cd /home/nathan/projets
tar -cf site.tar site
このコマンドにより作成されるのは、 site.tar ファイルと一緒に サイト 内部にあります。後で解凍すると、フォルダが取得されます。 サイト/現在のディレクトリにファイルが散乱している状態ではない。
gzip圧縮アーカイブを作成するには、以下を追加します。 z :
tar -czf site.tar.gz site
xz は多くの場合コンパクトだが、速度が遅いので、 J :
tar -cJf site.tar.xz site
サーバー上では、シンプルなgzipアーカイブの方が好ましい場合もあります。作成が迅速で、どこでも読み取り可能であり、設定フォルダの移動や単発のバックアップ作成には十分すぎるほどです。
アーカイブ内で絶対パスを使用しない
考えずに絶対的な経路を記録するのは悪い習慣です。
tar -czf site.tar.gz /var/www/site
タールは通常、除去する方法を知っている / 最初は警告が表示されますが、これはクリーンな転送のための最良の方法とは言えません。また、抽出後にファイルがどこに保存されるか正確に把握できないリスクもあります。
使用することを好みます -C tarがファイルを読み込む前に、どこに配置すべきかを明確に指示する:
tar -czf /tmp/site.tar.gz -C /var/www サイト
ここにはアーカイブが含まれています サイト/、 ない var/www/site/読みやすく、持ち運びやすく、別のマシンに抽出するのもはるかに簡単です。
アーカイブを正しいフォルダに展開する
アーカイブを抽出するには 。タール 現在のフォルダ内:
tar -xf site.tar
gzipアーカイブの場合:
tar -xzf site.tar.gz
しかし実際には、空のフォルダを用意して、そこにファイルを解凍することをお勧めすることが多いです。そうすれば、現在のディレクトリを散らかすことなく、アーカイブの内容をすぐに確認できます。
mkdir -p /tmp/test-extraction
tar -xzf site.tar.gz -C /tmp/test-extraction
find /tmp/test-extraction -maxdepth 2 -type f | head
この方法を使えば、特に他人がダウンロードしたり送信したりしたアーカイブファイルの場合に起こりうる、多くの不愉快な事態を回避できます。
抽出前に何が粉砕されるかを確認してください
Tarは、パスが一致する場合、既存のファイルを上書きすることができます。テストマシンでは問題ありませんが、アプリケーションフォルダでは、すぐに大きな問題になる可能性があります。
既にファイルが含まれているフォルダに展開する前に、アーカイブの内容を確認し、展開先のフォルダの内容と比較してください。
tar -tzf site.tar.gz | head
ls -la /var/www/site
ファイルを混在させずにテストしたい場合は、一時フォルダを使い続けてください。
rm -rf /tmp/test-extraction
mkdir -p /tmp/test-extraction
tar -xzf site.tar.gz -C /tmp/test-extraction
diff -qr /tmp/test-extraction/site /var/www/site
ザ diff -qr これは本格的なバックアップ戦略に取って代わるものではありませんが、さまざまなファイルについて明確なイメージをつかむのに役立ちます。
最初のフォルダ全体を再作成せずに抽出する
プロジェクトによっては、次のようなルートフォルダが付属している場合があります。 app-1.4.2/特定の宛先にのみコンテンツを取得したい場合は、 --strip-components=1 役に立つかもしれません。
mkdir -p /tmp/app
tar -xzf app-1.4.2.tar.gz -C /tmp/app --strip-components=1
警告:アーカイブを一覧表示せずにこのオプションを使用しないでください。アーカイブに想定されるフォルダレベルが含まれていない場合、意図した結果と異なる結果になる可能性があります。
アーカイブからファイルを除外する
アプリケーションフォルダをバックアップする場合、キャッシュ、大きなログ、または再生成可能な依存関係を必ずしも含める必要はありません。 --除外する アーカイブをより整理された状態に保つことができる。
tar -czf site.tar.gz --exclude='site/cache' --exclude='site/logs' site
適切なバックアップを準備している場合は、置き換えないでください。 制御されたrsync同期 手動でアーカイブを作成することで実現できます。`tar`コマンドは、フォルダのパッケージ化、転送、または凍結に便利です。定期的なバックアップの場合は、ローテーション、復元テスト、および別のストレージへの保存も検討する必要があります。
インストール用のtar.gzファイル:アーカイブとプログラムを混同しないでください
ファイル .tar.gz ソフトウェアが含まれている場合もありますが、必ずしも同じコマンドでインストールされるとは限りません。すぐに実行できるバイナリファイルが含まれている場合もあれば、スクリプトが含まれている場合、コンパイル用のソースコードが含まれている場合もあります。
もしあなたの目標が本当にダウンロードしたソフトウェアをインストールすることであるならば tar.gzまずは内容、ファイルを読むことから始めましょう お読みください または、出版社の資料を参照してください。この件については、ガイドの中で別途詳しく説明しています。 Linuxでランダムなコマンドを実行せずにtar.gzファイルをインストールする。
アーカイブを復元する前に
アーカイブを移動または復元する前に、少なくとも以下の点を確認してください。
- 正確な内容
tar -tf、tar -tzfまたはtar -tJf; - 宛先フォルダー
障害者そしてls -la; - でのテスト抽出
/tmpアーカイブが外部ソースから取得された場合。 - 抽出後の権利と所有者
ls -l; - で変更されたファイル
diff -qr既存のフォルダに上書き復元する場合。
抽出したファイルの名前を変更したり移動したりする必要がある場合は、 mvコマンド間違ったフォルダに展開してしまうようなミスは避けるべきです。適切に準備されたtarアーカイブは、時間を節約するものであり、手動で修正する必要のあるディレクトリ構造を残すものではありません。
さらに詳しく知りたい場合は、以下も参照してください。 GNU tar マニュアル そしてページ man7.orgのtar(1)実用的なガイドに比べると理解しにくい部分もありますが、高度なオプションを使い始めると非常に役立ちます。