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

[FDclone-users:00334] Re: copying from/to a linked file



At Sat, 21 Aug 2004 04:08:59 +0900,
Takashi SHIRAI wrote:
>  -f option は 4.3BSD-Reno で現れたようですが、実体一致の場
> 合の処理はその遥か以前から用意されていますので、同じものには
> 上書きしないという流儀があったところに後から -f を追加したと
> いうことになります。
>  なので、余り熟考した上で -f 時も実体一致回避をしているとい
> う訳でもなさそうですよ。しかも Reno 当時は -f は単なる -i の
> 否定の意味しか持ってませんでしたし。

 GNU cp(1) の実体一致時の処理には熟考の跡が見られますよ。
coreutils の src/copy.c:same_file_ok() がそれですが、特に
source が symlink で destination が実 file の場合、たとえ
-f や --remove-destination を付けても上書きはしないように
なっています。

> >  コピー元のファイルがコピー先のファイルへの symlinkだった場合
> > などを考慮したのかもしれません。
> 
>  destination が symlink の場合には read -> write 的なコピー
> ではなく readlink -> symlink で symlink としてコピーするのが
> 一般的だと思います。
>  この流儀は FDclone だけでなく歴代の cp(1) の仕様でもありま
> す。勿論 Reno より前からのお話。

 それは問題にしていませんし、ふつうだと思います。symlink は
symlink としてコピーするのが cp(1) のデフォルトですよね。

>  なので、symlink を敢えて強制的に上書きしたとしても、特にエ
> ラーにはならない筈です。勿論、どっちもが実体を失った symlink
> になって使えないことにはなりますが。

 symlink でその実体を上書きするというのをユーザが意図して
いるとは考えづらいので、伝統的な cp はもちろん、上に書いた
ように後発で意欲的に機能拡張している GNU cp でも、コピーは
実行されません。

 確認ですが、 FDclone (の次のバージョン)ではどうなりますか?

 私は、 cp と同様、実体が一致している旨を表示してコピーは
避けてほしいと思っています。

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"It seems to me as we make our own few circles 'round the sun
          We get it backwards and our seven years go by like one"