我需要一个命令(可能是cp的一个选项)来创建目标目录(如果目标目录不存在)。

例子:

cp -? file /path/to/copy/file/to/is/very/deep/there

当前回答

rsync file /path/to/copy/file/to/is/very/deep/there

如果您有正确的rsync类型,这可能会起作用。

其他回答

mkdir -p "$d" && cp file "$d"

(cp没有这样的选项)。

Oneliner创建一个小脚本,可以用作子命令,在find例如:

组+ H;Echo -e "#!/bin/sh\nmkdir -p \$(dirname \"\$2\");Cp \"$ 1\" \"$2\"\;"> ~ /地方/ bin / cpmkdir;Chmod +x ~/local/bin/cpmkdir . sh

然后你可以这样使用它:

查找name files_you_re_lookin_for。* -exec cpmkdir {} ./ extracted_copy / {} \;

我强烈建议你也这么做。 只是工作。

同样,my/location/poo .txt this/doesn /exist/yet/poo .txt

Shell函数,做你想要的,称它为“埋葬”副本,因为它为文件挖了一个洞:

bury_copy() { mkdir -p `dirname $2` && cp "$1" "$2"; }

我尊重上面的答案,我更喜欢使用rsync如下所示:

$  rsync -a directory_name /path_where_to_inject_your_directory/

例子:

$ rsync -a test /usr/local/lib/