我正在尝试将文件夹从源复制到目标。 目标文件夹并不总是存在。
如果目标文件夹不存在,哪个复制命令会创建目标文件夹?
示例:
$(CP) $(HOME)/text.txt $(DEST)/dir1/dir2/text.txt
文件夹dir1
和dir2
并不总是存在且应该被创建。
答案 0 :(得分:1)
你使用的是什么外壳?
无论如何,似乎没有很酷的捷径。最好的方法是简单地合并mkdir
和cp
。按照你的例子:
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)/.
...