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

例子:

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

当前回答

install -D file -m 644 -t /path/to/copy/file/to/is/very/deep/there

其他回答

这对我来说很有用

cp -vaR ./from ./to

正如上面help_asap和sponge所建议的,你可以使用'install'命令将文件复制到现有目录中,或者如果目标目录不存在,则创建新的目标目录。

选项1 安装-D filename some/deep/directory/filename 将文件复制到新的或现有目录,并赋予文件名默认的755权限

选项2 安装-D filename -m640 some/deep/directory/filename 按照选项1,但给文件名640权限。

选项3 安装-D filename -m640 -t some/deep/directory/ 根据选项2,但目标文件名到目标目录,所以文件名不需要写在源和目标。

选项4 install -D filena* -m640 -t some/deep/directory/ 与选项3相同,但对多个文件使用通配符。

它在Ubuntu中工作得很好,将两个步骤(创建目录和复制文件)合并为一个步骤。

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

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

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

(cp没有这样的选项)。

简单地没有创建脚本和简单的命令…

mkdir -p /destination-folder/ && cp file-name /destination-folder/