2015-10-29 13 views
4

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

mv example.txt example2.txt 

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

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

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

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

+0

Пожалуйста, также разместить соответствующий раздел из вашего кода – Oz123

+0

@ Oz123 см обновление – Arth

+0

о хорошо, что не хватает на самом деле, никогда не менее, я не буду гадать, мое решение должен работать на вас. Пожалуйста, проверьте его. – Oz123

ответ

13

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

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

Да, это все работает! – Arth

+1

@ Oz123, чтобы быть педантичным, нужно использовать '[-r blah]', для дополнительной проверки права на чтение – SergA