tarアーカイブのcatは何を表示しますか? [閉鎖]

tarアーカイブのcatは何を表示しますか? [閉鎖]

侵入テストキャプチャフラグのトレーニング中に「バックアップ」というファイルが見つかりました。 「バックアップ」のファイル形式を確認したところ、gzipで圧縮されていることがわかりました。 「test」というファイルに抽出しました。その後、「catテスト」を実行し、.bashrcファイルを見ていることがわかりました。しかし、そこには役に立つものが何もないので閉じ込められています。

結局、スポイラーを見てテストファイルのファイル形式がtarアーカイブラであることを発見し、解凍すると必要な内容が出ました。

私が混乱しているのは、tarアーカイブでcatを実行すると、アーカイブにランダムなファイルが表示され(またはランダムではないかもしれませんが、最初のファイルかもしれません)、実際にそのファイルに私がもっと見たこと以外に何もないという表示があるということですです。 (はるかに多く)。どうなりますか?猫はファイルの後に停止することをどうやって知ることができますか?これはtarがエンコードされる方法に関連していますか?

何が起こったのか理解したいです。

答え1

直接回答することはできませんが、何が起こっているのかを把握するのに役立つツールを提供します。

さらに進む前に、現在のファイルのバックアップコピーを作成する.bashrcか(好ましくは)現在の場所以外の別のディレクトリで次のことをお勧めします$HOME

比較と実験

テキストファイル(圧縮されていない)のtarファイルを作成し、catこれを行うことができます。最初の行でいくつかの興味深い情報を見ることができます。これをファイルと比較してくださいbackup

tar以外のファイル(例.bashrc:)を抽出すると、次の結果が表示されます。

$ tar xvf .bashrc
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

あなたが言ったように、backupファイル抽出はうまくいき、警告メッセージやエラーはなく、ファイルはtarアーカイブのようです。

fileあなたの友達になります

抽出を実行する前に file コマンドを使用できます。ファイルの種類が表示されます。

$ file backup.tar
backup.tar: POSIX tar archive (GNU)
$ file .bashrc
.bashrc: ASCII text

TAR:テープアーカイブ

これは当然のことですが、tarは他の多くの完全なディレクトリからファイルを作成するために使用された(そして今でも使用されている)ファイル形式です。これにより磁場を使用することができる。巻き保存するための記録媒体として使用されます。

RTFMはありますか?

tarいつものように、 と のfileマニュアルページを読んでおくと便利です。

このaproposコマンドはそのまま役に立つかもしれませんローカル検索エンジン。別の例として、使用方法は次のとおりです("ここでは、検索キーワードが単一のパラメータにグループ化されていることに注意してください)。

apropos "file type"

回答

最後に(私はいい人なので)以下は、.bashrcファイルを含むtarファイルの内容の例です。

$ cat backup.tar | head
.bashrc0000644000175000017500000000711012770726533011656 0ustar  myusermyuser# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

関連情報