我想从源文件夹复制到目的地。 目标文件夹并不总是存在。如何复制文件并创建路径目标文件夹,如果它们不存在?
如果目标文件夹不存在,哪个复制命令会创建目标文件夹?
例子:
$(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。希望这可以帮助!
BTW,为cp
语法cp [source] [destination dir]
如果您使用的是新版本的GNU版本做,有一个巧妙的方法,你可以用它来或多或少自动创建任何目标目录:
.SECONDEXPANSION:
%/.:
mkdir -p -- "$*"
现在,对于要创建目标目录的每个目标,添加“| $$(@ D)/”。作为先决条件:
$(TARGET) : $(PREREQUISITES) | $$(@D)/.
...
阅读'mkdir'手册页。密切关注'-p'标志。 – dmckee 2013-03-12 20:28:25