名前: 竹の 日時: 2006-09-05 10:10:06 IPアドレス: 202.243.120.*
>>44717 > xargs の件といい、UNIX 系ならたいてい OK だろうと多寡を > くくっておりました私が愚かでした。 Unix の場合、よく使われるツールは割と方言がありますから。GNU のツール も GNU 拡張がかなり含まれるので、可搬性には気をつけることがあります。 tar なんかは古いツールなのでかなり方言がきついです。 tar は FreeBSD でも Linux でも普通は GNU tar でしょうから、xzvf を受 け付けると思いますが、Solaris (9) の /usr/bin/tar は z オプションは受 け付けません。-C も x のときには使えません (c と r のときのみ)。 よって、可搬性を考えると伝統的な gunzip -c hoge.tar.gz | ( cd directory ; tar xf - ) のような記述の方が良かったりします。 >>tar については root で作業したとしても普通に tar xzvf などと >>展開すると取得したユーザ名通りになるのですが、-C オプション >>を使うとおかしいようですね。tar のバグなのでしょうか。 については、 Solaris (9): /usr/bin/tar, GNU tar 1.12 FreeBSD (4.X, 5.X): GNU tar 1.15.1, 1.13.25 (FreeBSD 拡張ありの /usr/bin/tar) でテストしてみましたが、いずれもそのような挙動、つまり「root で xzvf で展開した場合に、オリジナルの owner ではなく、file の所有 者、あるいは root が owner となって展開される」という挙動は確認 できませんでした。-C つきでも -C なしでも変わりません。 安田さんがおっしゃる通り、root で展開する場合は、tar ファイルの 所有者とは関係なく、tar ファイルに収められている owner 情報が参 照される、というのが正しい挙動だと思います。ただし、展開先に既 に展開ツリーが存在している場合は必ずしもそうではありません。 それから、少し前の記事ですが、 44632 > root:wheel は Linux だと違う!という場合、適宜変更してください。 wheel は BSD に由来するグループだったと思いますので、BSD 以外の Unix には普通はなかったと思います。
この書き込みへの返事: