#!/bin/sh # It just swaps two files export LD_INTERNAL1 . $(dirname $(realpath $0))/daisy.source file1=$1 file2=$2 function helpFn() { error=$? if [[ $error -gt 0 ]]; then error_text=$(perl -E 'say $!=shift' $error) echo "$LD_BIN error ($error): $error_text" fi echo "Usage: $LD_BIN " echo Swap two files in a filesystem. exit $error } if [[ $@ == *"--help"* ]]; then helpFn elif [[ $@ == '' ]]; then echo "No arguments specified." helpFn fi # We set a trap here, together with 'set -e' above, # this makes sure we exit gracefully if we have an # error in one of the ls or mv calls. trap helpFn ERR # We want to swap two files # Easy, but let's be safe about it ls "$file1" >/dev/null ls "$file2" >/dev/null # Files should exist, now we move mv "$file1" "$file1.sw" mv "$file2" "$file2.sw" # We got our moved copies, now we simply rename mv "$file1.sw" "$file2" mv "$file2.sw" "$file1"