Как проигнорировать mv ошибку?

Я делаю Make-файл, который перемещает выходной файл (foo.o) к другому каталогу (baz).

Выходной файл перемещается, как желаемый в каталог. Однако с тех пор делают, не перекомпилирует выходной файл, если я введу make снова, mv получает ошибку, когда она пытается переместить несуществующий пустой файл в каталог baz.

Таким образом, это - то, что я определил в своем правиле make all после всей компиляции:

-test -e "foo.o" || mv -f foo.o ../baz

К сожалению, я все еще получаю ошибки.

31
задан Willem Van Onsem 10 April 2015 в 22:27
поделиться

3 ответа

+@[ -d $(dir $@) ] || mkdir -p $(dir $@)

- это то, что я использую для незаметного создания папки, если она не существует. Для вашей проблемы должно работать что-то вроде этого

-@[ -e "foo.o" ] && mv -f foo.o ../baz
10
ответ дан 27 November 2019 в 21:22
поделиться
   -test -e "foo.o" || if [ -f foo.o ]; then mv -f foo.o ../baz; fi;

Это должно сработать

1
ответ дан 27 November 2019 в 21:22
поделиться

Что-то вроде

test -e "foo.o" && mv -f foo.o ../baz

должно работать: оператор должен быть && вместо || .

Вы можете поэкспериментировать с этим, попробовав следующие команды:

test -e testfile && echo "going to move the file"
test -e testfile || echo "going to move the file"
0
ответ дан 27 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: