Вы почти наверняка ищете сценарий для этого.
Для файлов вы можете жестко связать их, и если это было успешно, отмените связь с оригиналом. Это не будет работать для каталогов (потому что большинство файловых систем запрещают жесткие ссылки на каталоги).
Минимально протестированный, тривиальный скрипт, который может это сделать:
#/bin/sh if ln "$1" "$2" ; then unlink "$1" fi
Альтернативой является проверка файловой системы, связанной с каждым путем.
Здесь я мог бы начать с чего-то вроде
#! /bin/sh STAT=/usr/bin/stat v1=$( $STAT -f "%d" "$1" ) v2=$( $STAT -f "%d" "$2" ) if [[ $v1 == $v2 ]] then mv "$1" "$2" fi
ПРЕДУПРЕЖДЕНИЕ! В этом есть ошибка, если в качестве цели вы укажете самый верхний каталог файловой системы. Исправление ошибки является тонким, но это может выглядеть так: проверьте, существует ли пункт назначения. Если не touch
это. Затем укажите пункт назначения. Если копия не удалась, и вам нужно было создать цель, чтобы протестировать ее, удалите цель.