On Fri, Sep 11, 2009 at 17:00, Jim Meyering <j...@meyering.net> wrote: > Bert Wesarg wrote: >> On Fri, Sep 11, 2009 at 16:15, Jim Meyering <j...@meyering.net> wrote: >>> Bert Wesarg wrote: >>>> On Mon, Sep 7, 2009 at 18:25, Bert Wesarg <bert.wes...@googlemail.com> >>>> wrote: >>>>> Hi all, >>>>> >>>>> I'm failing in creating a symlink where the destination is a directory >>>>> and do a backup of this directory. This is what I tried: >>>>> >>>>> $ mkdir a >>>>> $ ln -s --no-target-directory --backup=numbered b a >>>>> ln: `a': cannot overwrite directory >>>>> >>>>> Looking at the code I can seen the reason, the backup rename() is >>>>> never executed, because the check whether the target is a directory >>>>> comes first. >>>>> >>>>> Any hints whether this is a bug of ln or how I can create the link >>>>> while preserving the destination as an backup are more than welcomed. >>>>> >>>>> Thanks. >>>>> Bert >>>>> >>>> Thanks to all for the release. But can someone please have a look at my >>>> problem? >>> >>> cp and mv work the same way: even with --backup, they refuse to move >>> aside a destination directory. >>> >>> However, that's something that I've considered worth changing >>> for years. I never got around to it. If only for the testing >>> requirements, it will not be a trivial change, since for UI >>> consistency, it should affect all three at the same time. >>> >>> Maybe someone will volunteer to do the work. >> Maybe a simpler solution would be a new dedicated tool which just >> backups files, i.e. utilize the find_backup_file_name()/rename() >> combination and call it 'mkbck'. > > We already have that ;-) > Here's a bash "function" named backup: > > backup() { local i; for i in "$@"; do command cp -bf "$i" "$i"; done; } Which still does not work for directories?
Bert >