Paul Eggert wrote: > > + ln -f "$file" "$file~" 2>/dev/null || cp -f "$file" "$file~" || { > > This will be problematic if the destination already exists, as the > resulting permissions etc. may not be what the user intend. How about if > we fall back on "mv -f" instead? Although this has the disadvantage of > having a small window where "$file" does not exist, I think that's > preferable to the disadvantage of using "cp".
How about ln -f "$file" "$file~" 2>/dev/null || { rm -f "$file~" && cp "$file" "$file~"; } || { then? It fixes the problem "if the destination already exists", and does NOT leave a window where "$file" does not exist. Bruno