$ mv old tmp && mv curr old && mv tmp curr
ist etwas effizienter!
Eingehüllt in wiederverwendbare Shell-Funktion:
function swap()
{
local TMPFILE=tmp.$$
mv "$1" $TMPFILE && mv "$2" "$1" && mv $TMPFILE "$2"
}
Fügen Sie dies zu Ihrer .bashrc hinzu:
function swap()
{
local TMPFILE=tmp.$$
mv "$1" $TMPFILE
mv "$2" "$1"
mv $TMPFILE "$2"
}
Wenn Sie mit einem möglichen Ausfall des Zwischenprodukts mv
umgehen möchten überprüfen Sie die Antwort von Can Bal.
Bitte beachten Sie, dass weder diese noch andere Antworten ein atomares liefern Lösung, da es unmöglich ist, solche mit Linux-Systemaufrufen und/oder gängigen Linux-Dateisystemen zu implementieren. Überprüfen Sie für den Darwin-Kernel exchangedata
Systemaufruf.
tmpfile=$(mktemp $(dirname "$file1")/XXXXXX)
mv "$file1" "$tmpfile"
mv "$file2" "$file1"
mv "$tmpfile" "$file2"