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

例子:

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

当前回答

这对我来说很有用

cp -vaR ./from ./to

其他回答

从源复制到不存在的路径

mkdir –p /destination && cp –r /source/ $_

注意:该命令复制所有文件

Cp -r用于复制所有文件夹及其内容

$_ work作为最后一个命令中创建的目标

仅适用于macOS

rsync -R <source file path> destination_folder

对于macOS -父母cp选项不工作

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

(cp没有这样的选项)。

比如说你在做

cp file1.txt A/B/C/D/文件txt

其中A/B/C/D是还不存在的目录

一个可能的解决方案如下

DIR=$(dirname A/B/C/D/file.txt)
# DIR= "A/B/C/D"
mkdir -p $DIR
cp file1.txt A/B/C/D/file.txt

希望有帮助!

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

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