如果它们不存在,我如何复制文件并创建路径目标文件夹?

时间:2013-03-12 20:18:51

标签: makefile

我正在尝试将文件夹从源复制到目标。 目标文件夹并不总是存在。

如果目标文件夹不存在,哪个复制命令会创建目标文件夹?

示例:

$(CP) $(HOME)/text.txt $(DEST)/dir1/dir2/text.txt

文件夹dir1dir2并不总是存在且应该被创建。

2 个答案:

答案 0 :(得分:1)

你使用的是什么外壳?

无论如何,似乎没有很酷的捷径。最好的方法是简单地合并mkdircp。按照你的例子:

mkdir -p dir1/dir2 && cp ~/text.txt ~/dir1/dir2

此命令会将test.txt放在dir2中。希望这有帮助!

顺便说一句,cp的语法是cp [source] [destination dir]

答案 1 :(得分:0)

如果您使用的是最新版本的GNU make,那么您可以使用一个简洁的技巧来自动或多或少地为任何目标创建目录:

.SECONDEXPANSION:
%/.:
        mkdir -p -- "$*"

现在,对于您希望创建目标目录的每个目标,添加“| $$(@ D)/。”作为先决条件:

$(TARGET) : $(PREREQUISITES) | $$(@D)/.
        ...