2013-03-12 86 views
0

我想从源文件夹复制到目的地。 目标文件夹并不总是存在。如何复制文件并创建路径目标文件夹,如果它们不存在?

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

例子:

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

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

+1

阅读'mkdir'手册页。密切关注'-p'标志。 – dmckee 2013-03-12 20:28:25

回答

1

你在用什么外壳?

无论如何,它似乎没有很酷的捷径。最好的方法是简单组合mkdircp。下面您的示例:

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

此命令将使test.txt的在DIR2。希望这可以帮助!

BTW,为cp语法cp [source] [destination dir]

0

如果您使用的是新版本的GNU版本做,有一个巧妙的方法,你可以用它来或多或少自动创建任何目标目录:

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

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

$(TARGET) : $(PREREQUISITES) | $$(@D)/. 
     ... 
相关问题