[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 配付ファイルの解凍について



こんにちは。

Koutarou Ishikawa <stein@osk.3web.ne.jp> writes:

> だとすると、binary のセットの場合、tgzファイルを / に置いてから、BSDマガジ
> ン第1号にあった
> 
> >> for f in *.tgz; do tar --unlink \-xzvpf $f; done
> 
> というのを使って、連続解凍やりましたが(*2)、source のセットでも、こん
> な連続解凍できるんかいな? …というのが、謎としてあります。

できます。
--unlink で削除されるのは tarball の中に含まれているファイルだけです。

> (*2)…実は、『for文によるループ(tgzファイルのfについては、tarでunlink
> して解凍せよ)』という見当はついてますが、『fって? $fって? スイッチの
> 前にバックスラッシュ?』というのが見当付きません。

f はシェル変数です。*.tgz にマッチするファイル名がひとつづつ格納
されます。$f は f と同じです。参照する時は先頭に $ が必要です。

バックスラッシュについては意図がよくわかりませんが、これは書籍の
例そのままですか?

もし、オリジナルでは以下のように改行しているとすれば、それは改行位置
以降もコマンドが続いているという意味です。

for f in *.tgz; do tar --unlink \
-xzvpf $f; done

sh(1) の man page には以下のように記述されています。

   Backslash
     A backslash preserves the literal meaning of the following character,
     with the exception of <newline>.  A backslash preceding a <newline> is
     treated as a line continuation.

-- やまの