[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00334] Re: copying from/to a linked file
- Subject: [FDclone-users:00334] Re: copying from/to a linked file
- From: "Akinori MUSHA" <knu@iDaemons.org>
- Date: Sat, 21 Aug 2004 05:58:33 +0900
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"