PONOS Advent Calendar 2022の11日目の記事です。
昨日は@ferret_itachiさんでした
本記事を書くに至った経緯
Linuxを利用している方はaptやyum、dnf、Macならbrewなどのパッケージマネージャを使ってソフトをインストールしていることかと思います。パッケージマネージャにまかせておけばだいたいなんとかなります。
ソースコードを引っ張ってきて自身でコンパイルしてもいいんですが面倒くさいですよね。ソースコードをダウンロードする際にhogehoge.tar.gz
というファイルであることがほとんどですね。実際のところ。パッケージマネージャを使っても裏では同じファイルをダウンロードしていたりします。
なんとなくtar xvfz hogehoge.tar.gz
とコマンド実行してファイルを展開していますが、本来の使い方使わなくなって随分経つなぁと思い本記事を書くに至りました。
本来の使い方って・・・?
本来の使い方ってなんだろうってなるんですが、それはテープ媒体の操作です。一般的に知られているのはカセットテープやVHSといったプラスチックの中に磁気テープが入っているものです。私の場合はDATとかILOというテープ媒体を取り扱いました。
テープに対して操作を行う場合にtar
コマンドを利用してファイルやディレクトリを読み込んだり書き込んだりする事ができます。私達はテープに読み書きするための形式のファイルをテープなしで取り扱っているということになりますね。
ほかにもcpio
や pax
といったコマンドもありますが今回はtar
に絞ってお話します。
テープに書き込むときはこんな動きをしている
tarコマンドを使って色々行う際に、テープではどんな動きをしているのか
テープドライブのパスですが、/dev/rmt/0m
を使用します。(各種OSでパスは違います)
c
オプション
c
オプションを使うと新規でテープへの書き込みを行います。コマンドはこんな感じです。
tar cvf /dev/rmt/0m ./hogehoge
現在の一般的な使い方だとファイルやフォルダを新しくアーカイブしてファイル出力するというものです。
これをテープに同様のことを行った場合にはテープを巻き戻してテープの一番はじめから順にデータを書き込んでいきます。すでにデータが書き込まれている場合にもテープの一番最初からデータを上書きします。
r
オプション
r
オプションを使うと新規でテープへの書き込みを行います。
tar rvf /dev/rmt/0m ./hogehoge_add
現在の一般的な使い方だとファイルやフォルダを既存のアーカイブしたtar形式のファイルに追加するというものです。
これをテープに同様のことを行った場合には既存のデータのいちばん最後までテープを早送りするなり巻き戻しするなりして移動してそこからデータを書き込んで追加します。
t
オプション
t
オプションを使うとテープにどんなファイルが書き込まれているか標準出力します。
tar tvf /dev/rmt/0m
現在の一般的な使い方だとtar形式のファイルにどんなファイルがあるか参照するというものです。
これはテープでも一緒で、テープの一番最初からデータの書き込まれている箇所までテープを読み取りどんなファイルが書き込まれているか参照するというものです。
x
オプション
x
オプションを使うとテープからファイルを取り出します。
tar xvf /dev/rmt/0m
現在の一般的な使い方だとtar形式のファイルからファイルを取り出すときに使用します。
これもテープでも一緒で、テープの一番最初からデータの書き込まれている箇所までテープを読み取り、別のファイルシステムにファイルを書き出すというものです。
おわりに
結構この話題イケるだろうと思っていました。しかし実際書いてみるとあんまり書くことないなっていう絶望感がありました。この記事を書いているときにDATでの読み書きに時間がかかったことや、DATを入れても読み込んでくれなくてクリーニングテープ入れてクリーニングしたこととか色々思い出しました。
外に向けて何かを発信するということ自体をやらないので、いい機会になったかなと思っています。
明日は@nissy_gpさんの記事です。お楽しみに!