Я пишу make-файл. Однако, за исключением расширения пути и ограничений на то, что я могу сделать, это в основном вопрос сценариев оболочки. Как часть процесса make, я хочу скопировать каталог в место назначения. Мой исходный каталог и каталог назначения являются переменными, поэтому я не могу много о них говорить. Они могут быть полностью квалифицированы, они могут быть относительными.
Но я хочу скопировать каталог $ (A) в место назначения $ (B). $ (B) - это имя, которое я хочу, чтобы каталог имел в месте назначения, а не каталог, в который я хочу скопировать $ (A) (т.е. результирующее имя каталога будет $ (B), а не $ (A) / $ ( B)), это может быть один и тот же путь для source и dest, поэтому я проверяю с помощью ifneq ($ (A), $ (B)), прежде чем что-либо делать. Но вопрос в том, что мне делать в блоке.
Если я делаю
cp -r $(A) $(B)
это будет работать с первого раза. $ (A) копируется в $ (B). Но если правило сработает снова позже, оно создаст новую копию $ (A) внутри $ (B) (то есть $ (B) / $ (A)).
И прежде чем вы спросите, я бы предпочел не rm -r $(B)
, прежде чем делать это, если это вообще возможно.