перемещаться только в том случае, если файл существует в сценарии оболочки

В качестве части сценария резервного копирования я хочу вызвать mv на файл, чтобы переименовать его:

mv example.txt example2.txt

Если файл не существует, я получаю сообщение об ошибке:

mv: cannot stat ‘example.txt: No such file or directory

Как вызвать mv только в том случае, если файл уже существует?

Я действительно не хочу перенаправлять stderr на dev/null как мне хотелось бы оставить любые другие ошибки.

Ответы

Ответ 1

Вы должны проверить, существует ли файл

if [ -f blah ]; then
   mv blah destination
fi

Ответ 2

Один лайнер:

[ -f old ] && mv old nu

Ответ 3

Этот вкладыш успешно возвращается, даже если файл не найден:

[ ! -f src ] || mv src dest