vine-users ML アーカイブ



[vine-users:072925] Re: tar -N  について

  • From: OIKAWA Ataru <nekomimi@xxxxxxxxxx>
  • Subject: [vine-users:072925] Re: tar -N  について
  • Date: Thu, 22 Sep 2005 23:45:28 +0900
及川です。

On Thu, 22 Sep 2005 16:57:22 +0900
T Shiihara <c_hara@xxxxxxxxxxxxx> wrote:

> $  tar -cf archive.tar -N 2005-09-22 ~/documents/
> としたら
> tar: Removing leading `/' from member names
> だけでそれ以外のコメントははき出されず archive.tarが作成されました。
> これでいい?
> しばしこれで使ってみます。

大きな問題はないと思います。が、一つだけ留意しておきたい点があります。
それは、毎回 warning として出力される
> tar: Removing leading `/' from member names
と関係あることなのですが…

~/documents/ としてディレクトリを指定した場合、シェルによって ~ が
ホームディレクトリの絶対パスに置き換わります。従って、実際は絶対パスによって
ディレクトリ指定が行われていることになります。

で、これの何が問題かというと、tar のデフォルトの動作によって先頭の `/' が削除され、
アーカイブにはファイルが / からの相対パスとして格納されることになります。
具体的には、 home/hoge/document/piyo というパス名で格納されます
($ tar -tf archive.tar してみると分かると思います)。 
そうすると、復元する時には

$ tar -xf archive.tar -C /

としてやらないと同じ場所にファイルが戻らないことになります。

もしこの状況が意図したものではない場合、それを回避するには、アーカイブの作成時に

$ tar -cf archive.tar -C ~ -N 2005-09-22 documents/

とする方法があります。
(これを行うと tar が -C オプションの指定によりホームディレクトリへ cd を行います)

===========================================================
OIKAWA Ataru
Iwate Prefectural University
Graduate School of Software and Information Science 

nekomimi@xxxxxxxxxx
GnuPG fingerprint: 
  D9CD 0C29 72C0 3093 4D46  D463 7979 02B3 CC96 C2DC
===========================================================