我需要一个命令(可能是cp的一个选项)来创建目标目录(如果目标目录不存在)。
例子:
cp -? file /path/to/copy/file/to/is/very/deep/there
我需要一个命令(可能是cp的一个选项)来创建目标目录(如果目标目录不存在)。
例子:
cp -? file /path/to/copy/file/to/is/very/deep/there
当前回答
rsync file /path/to/copy/file/to/is/very/deep/there
如果您有正确的rsync类型,这可能会起作用。
其他回答
仅适用于macOS
rsync -R <source file path> destination_folder
对于macOS -父母cp选项不工作
可以在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中。
rsync file /path/to/copy/file/to/is/very/deep/there
如果您有正确的rsync类型,这可能会起作用。
mkdir -p "$d" && cp file "$d"
(cp没有这样的选项)。
Shell函数,做你想要的,称它为“埋葬”副本,因为它为文件挖了一个洞:
bury_copy() { mkdir -p `dirname $2` && cp "$1" "$2"; }