我需要一个命令(可能是cp的一个选项)来创建目标目录(如果目标目录不存在)。
例子:
cp -? file /path/to/copy/file/to/is/very/deep/there
我需要一个命令(可能是cp的一个选项)来创建目标目录(如果目标目录不存在)。
例子:
cp -? file /path/to/copy/file/to/is/very/deep/there
当前回答
从源复制到不存在的路径
mkdir –p /destination && cp –r /source/ $_
注意:该命令复制所有文件
Cp -r用于复制所有文件夹及其内容
$_ work作为最后一个命令中创建的目标
其他回答
简单地没有创建脚本和简单的命令…
mkdir -p /destination-folder/ && cp file-name /destination-folder/
只是恢复和给出一个完整的工作解决方案,在一行。 如果您想要重命名文件,请注意,您应该包括一种方法来提供到mkdir的干净dir路径。$fdst可以是file或dir。 下一段代码在任何情况下都可以工作。
fsrc=/tmp/myfile.unk
fdst=/tmp/dir1/dir2/dir3/myfile.txt
mkdir -p $(dirname ${fdst}) && cp -p ${fsrc} ${fdst}
或者特定于bash
fsrc=/tmp/myfile.unk
fdst=/tmp/dir1/dir2/dir3/myfile.txt
mkdir -p ${fdst%/*} && cp -p ${fsrc} ${fdst}
mkdir -p "$d" && cp file "$d"
(cp没有这样的选项)。
Shell函数,做你想要的,称它为“埋葬”副本,因为它为文件挖了一个洞:
bury_copy() { mkdir -p `dirname $2` && cp "$1" "$2"; }
可以在Perl中使用find。命令如下所示:
find file | perl -lne '$t = "/path/to/copy/file/to/is/very/deep/there/"; /^(.+)\/.+$/; `mkdir -p $t$1` unless(-d "$t$1"); `cp $_ $t$_` unless(-f "$t$_");'
如果目录$t不存在,该命令将创建该目录。然后只将文件复制到$t中,除非文件存在于$t中。