GNU/Linux >> Linux の 問題 >  >> Linux

15LinuxでのTarコマンドの使用例

タール は、単一のアーカイブに複数のファイルを収集するために使用される優れたユーティリティです。このファイルは、「tarball」と呼ばれることがよくあります。 今日は、ターボールでできるさまざまなことについてお話します。 tarを使用する コマンド、実用的な例。

Tarは主に、DEB、RPM、AURパッケージなどの基本的な形式ではなく、任意のシステムで機能するrawインストール用のパッケージアプリケーションとそのバイナリに使用されます。それ以外は、 tar また、バックアップを作成するための非常に効率的な形式です。

注: すべての-f 「ファイル」を操作するときは常に、どこでも使用されるタグが必要です。これはほとんどすべての場合です。

LinuxでのTarコマンドの使用

1。 –リスト

このフラグは、tarball内のファイルを一覧表示するために使用されます。必要な引数は、tarballの名前と(前述のように) -fのみです。 国旗。標準の構文は次のようになります:

tar --list -f <Tarball name>

短い形式:

tar tf <Tarball name>

2。 –作成

–createフラグは、新しいtarballを作成するために使用されます。必要な引数は、(将来の)tarballの名前と含まれるファイルです。ディレクトリの名前も引数として受け入れられます。標準形式は次のとおりです。

tar --create -f <Required tarball name> <File names>

これは、次のように短い形式で使用できます。

tar cf <Required tarball name> <File names>

他の形式のアーカイブを作成する

tarに含まれているアーカイブには、圧縮に使用されるさまざまな形式があります。表示する形式は.tar.xzです。 および.tar.gz フォーマット。

XZの作成( .tar.xz )アーカイブ

tar cfJ <Required tarball name> <File names>

GZipの作成( .tar.gz )アーカイブ

tar cfz <Required tarball name> <File names>

bzip2(.tar.bz2)アーカイブの作成

tar cfj <Required tarball name> <File names>

3。 –追加

–appendフラグは、既存のtarballにファイルを追加するために使用されます。構文は非常に単純です。つまり、次のとおりです。

tar --append -f <Tarball name> <Names of files to be added>

短い:

tar rf <Tarball name> <Names of files to be added>

4。 –削除

これは、tarballからファイルを削除するために使用されます。構文には、tarballの名前とファイルの名前が次の順序で必要です。

tar --delete -f <Name of tarball> <Names of files>

5。 –diff

–diff flagは、tarballとユーザーが指定する必要のある特定のファイルとの違いを検出します。たとえば、前述のように、tarはバックアップの作成に広く使用されています。したがって、既存のtarballがあり、ファイルの現在の状態と、すでにtarballにあるファイルとの間に違いがあるかどうかを確認する場合は、 –diff> 。

例:

この状況では、ファイル test tarballでtest.tar は空ですが、tarballの外側にあるものには次のような内容が含まれています。 tarによって示される違いに注意してください 。

ここでわかるように、空のテストの間に表示されるエラー 空でないテストサイズが異なります」 ただし、サイズが同じでも、エラーが発生します:

結論として、一般的な構文は次のように表示できます。

tar --diff -f <Name of tarball> <Names of files to be compared>

6。 –更新

このフラグは、tarball内の特定のファイルを更新するために使用できます。このコマンドに同じ名前のファイルを配置すると、古いファイルが最新バージョンに置き換えられるのではなく、新しいコンテンツのファイルがファイルの最後に追加されます。以下のスクリーンショットはこれを説明しています:

繰り返しますが、これはバックアップを作成する場合に使用できます。一般的な構文は次のようになります。

tar --update -f <Tarball name> <Names of files to be updated>

短い形式:

tar uf <Tarball name> <Names of files to be updated>

7。 –抽出

これは、おそらくtarコマンドで最もよく使用されるフラグです。 tarballからファイルを抽出するために使用され、そのように使用されるため、多くの構成もあります。変更の場合、tarball名以外の引数はオプションです。指定しない場合、 tar tarball内のすべてのファイルを抽出します。したがって、特定のファイルを抽出するための構文:

tar --extract -f <Tarball name> <File names>

すべてのファイルを抽出する場合:

tar --extract -f <Tarball name>

または短い形式:

tar xf <Tarball name> <Optional file names>

GZipの抽出( .tar.gz )アーカイブ

tar zxf <Tarball name> <Optional file names>

XZの抽出( .tar.xz )tarアーカイブ

tar xf <Tarball name> <Optional file names>

bzip2(.tar.bz2)アーカイブの抽出

tar xjf <Tarball name> <Optional file names>

これで、基本を処理した後、 tarのいくつかのより深い機能に入ることができます。 。

8。上書き制御

tarballから抽出される1つ以上のファイルの名前が、作業ディレクトリにすでに存在するファイルの名前と一致する場合があります。それが起こったときにあなたが望むことをするためにいくつかの手段をとることができます。さまざまなシナリオ:

ファイルを上書きするには

最初のケースは、ディレクトリに存在するファイルを置き換えたい場合です。これを確実に行うには、次の方法でコマンドを発行します。

tar --extract -f <Tarball name> <Optional file names> --overwrite

ファイルを上書きしないようにする

これにより、ファイルが既に存在していると言って、ファイルが上書きされることはありません。コマンドは次の方法で発行できます:

tar --extract -f <Tarball name> <Optional file names> -keep-old-files

古いファイルのみを上書きするには

これは、アーカイブ内のファイルと比較して新しいファイルのみを保護するため、特に便利です。たとえば、ここでは、 test2 アーカイブ内には、 test2と比較して変更されたコンテンツが含まれています ディレクトリ内:

ご覧のとおり、「…は新しいか同じ年齢です ‘残りのファイルについては、 test2ではありません 、つまり test2 交換されました。したがって、コマンドの構造は次のとおりです。

tar --extract -f <Tarball Name> <Optional file names> --keep-newer-files

9。 –ファイルの削除

このフラグは、ファイルがアーカイブされた直後にディレクトリからファイルを削除するためのショートカットとして使用できます。その単純なコマンドで、構文は次のとおりです。

tar --create -f < Required tarball name> <File names> --remove-files

10。 –除外

–excludeフラグを使用して、特定のファイルをアーカイブから除外できます。以下のコマンドで使用するように、パターンは他の何よりも前に、逆コンマで指定する必要があります。

tar --exclude='PATTERN' --create -f <Tarball name required> <File names>

使用例:

11。 –to-command =’COMMAND’

tarコマンドには、出力を別のコマンド、つまり –to-commandの入力として使用する機能があります。 国旗。たとえば、test2.tarのファイルの名前を使用して、アーカイブ内のファイルと同じ名前のディレクトリを作成します。これは次のように実行できます:

tar xf test2.tar --to-command='mkdir $TAR_REALNAME'

これはかなり進んでいます。 ‘ $ ‘は、Bashの使用中にシステム変数を参照するために必要です。名前「TAR_REALNAME ‘は、 –to-commandを使用しているときに単一のファイルの名前を参照するために使用される変数です。 tarのフラグ 。そのような変数はいくつかあり、 manにあります。 tarのページ 、およびこのWebページ。

12。ファイルの所有権

アーカイブ内のファイルの所有権は、さまざまな方法で構成できます。まず、ファイルが特定の所有者に設定されているアーカイブを作成するには、フラグ –owner に使える。使用例:

ご覧のとおり、ユーザー0とグループ0はユーザー rootに対応します。 。 ルート (おそらくご存知のように)システムの大君主です。次の方法でidコマンドを使用して、他のユーザーのUID(ユーザーID)とGID(グループID)を見つけることができます。

id <username>

次に、ファイルの所有者を保持しながらファイルを抽出します。

tar xf <Tarball name> --same-owner

13。完全なバックアップソリューション

すでに数回述べたように、 tar 非常に優れたバックアッププログラムです。それをさらに良くするいくつかのフラグについてお話します。まず、バックアップを作成する際に含めたり除外したりしたいことがあります。リンク(シンボリックリンク)が指しているファイルを含めます。以前のバックアップファイルとVCSディレクトリを除外します(ほとんどの場合、プログラマーにのみ役立ちます)。バックアップを作成しているディレクトリに近づかないことも重要です。

たとえば、あなたは / homeにいます ディレクトリであり、ユーザーtestuser。のバックアップを作成する必要があります。 コマンドは次のようになります:

sudo tar --exclude-backups --exclude-vcs --dereference --create -f backup.tar ./testuser
  • 「sudo」 2つの理由があります。1つは、権限が必要な/homeディレクトリで作業を行っていることです。次に、シンボリックリンクがユーザーの通常の権限外のファイルを指している場合、エラーが発生します。
  • –exclude-backups および–exclude-vcs バックアップファイルとVCSファイルをそれぞれ除外します。
  • –逆参照 tarを作成します ポイントしているデータへのシンボリックリンクをたどります。

14。変更された時間

ファイルの変更時間で実行できることはたくさんあります。まず、ファイルのアーカイブ中に変更日を変更するには、 –mtimeを使用できます。 国旗。基本構文:

tar --create -f <Required tarball name> <File names> --mtime=YYYY-MM-DD

これに対する解毒剤として、-mフラグを使用して、変更されていない変更された日付を取得できます。これを使用するには:

tar xf <Tarball name> -m

特定の日付以降に変更されたファイルに対してのみ機能します

この形式のコマンドは、特定の日付以降に変更されたファイルを処理するために使用できます。コマンドは次のようになります:

tar xf <Tarball name> --newer-mtime=YYYY-MM-DD

使用例を以下に示します。

15。権限

最後に、 tar の場合、権限を非常に適切に構成できます。 ファイル。 2つの重要なバリエーションがあります:

元の権限を保持する

これは、抽出後にアーカイブに記載されているように、ファイルのアクセス許可を保持するために使用できます。これは、次のようなコマンドによって実現されます。

tar xf <Tarball name> --preserve-permissions

デフォルト値としての権限の変更

次に、権限をデフォルトの umaskとして変更できます。 値。デフォルト値はシステムによって異なります。これを行うには、次のコマンドを入力します。

tar xf <Tarball name> --no-same-permissions

結論

tarコマンドは見た目以上のものです。アプリケーションのパッケージ化、バックアップの作成から、OS全体の保存まで、幅広い用途があります。このチュートリアルが、 tarについて新しくエキサイティングなことを学ぶのに役立つことを願っています。 。ご不明な点がございましたら、コメントセクションをご利用ください。


Linux
  1. 例を含むLinuxTeeコマンド

  2. 例を含むLinuxヘッドコマンド

  3. LinuxでのJQコマンドと例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linux での tar コマンドの例

  1. Linuxでのエコーコマンド(例付き)

  2. Linuxでのmanコマンドと例

  3. Linuxでのtarコマンドと例