Re: hard link & mv (fileutils-4.1)
よこた です。
<m3smo4hn56.fsf@maedapc.cc.tsukuba.ac.jp>の記事において
maeda@cc.tsukuba.ac.jpさんは書きました。
>> > % mv -f A B tmp
>> > mv: cannot create hard link `tmp/B' to `tmp/A': File exists
>> >
>> > 怒られちゃうんですけど、そういうモンなんでしょうか?
>> > fileutils の以前のバージョンは怒らずにできていたと思うんだけど ...。
>>
>> 「すでに目的のディレクトリにmoveしたファイルと(inodeが)同じファイルを
>> moveするときは,単にhard linkを作る」という最適化(?)をしてますね.
<snip>
>> レポートしてあげると良いんじゃないかな.
今日 bug-fileutils@ にレポート出してみました。けど、
出したあとに www.gnu.org を見て知ったんですけど、fileutils は
coreutils に含まれるようになったんですね。
で coreutils-5.0 の mv を使ってみたところ、問題なくできました。
strace で見ると、
rename("A", "tmp/A") = 0
link("tmp/A", "tmp/B") = -1 EEXIST (File exists)
unlink("tmp/B") = 0
link("tmp/A", "tmp/B") = 0
unlink("B") = 0
だそうで。
## あぁ、レポート送る前にもっと調べればよかった ...
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735