我正在尝试将文件夹从源复制到目标。目标文件夹并不总是存在。
如果目标文件夹不存在,哪个复制命令会创建它?
例子:
$(CP) $(HOME)/text.txt $(DEST)/dir1/dir2/text.txt
文件夹dir1
并不dir2
总是存在,应该创建。
我正在尝试将文件夹从源复制到目标。目标文件夹并不总是存在。
如果目标文件夹不存在,哪个复制命令会创建它?
例子:
$(CP) $(HOME)/text.txt $(DEST)/dir1/dir2/text.txt
文件夹dir1
并不dir2
总是存在,应该创建。
你用的是什么外壳?
无论如何,似乎没有很酷的捷径。最好的方法是简单地将 和 结合mkdir
起来cp
。按照你的例子:
mkdir -p dir1/dir2 && cp ~/text.txt ~/dir1/dir2
此命令会将 test.txt 放在 dir2 中。希望这可以帮助!
顺便说一句,语法cp
是cp [source] [destination dir]
如果您使用的是最新版本的 GNU make,那么您可以使用一个巧妙的技巧来或多或少地自动为任何目标创建目录:
.SECONDEXPANSION:
%/.:
mkdir -p -- "$*"
现在,对于要创建目标目录的每个目标,添加“| $$(@D)/”。作为先决条件:
$(TARGET) : $(PREREQUISITES) | $$(@D)/.
...