如何将文件复制到新位置,同时创建目录

Mic*_*ant 12 command-line files directory copy

我想要cp一个文件到另一个目录,但该目录尚不存在。

所以我会这样做:

mkdir /new_place
cp the_file /new_place
Run Code Online (Sandbox Code Playgroud)

我可以一次完成吗?
我想像cp the_file -m /new_place如果“m”代表“制作不存在的目录”

这是使用 scp、rsync 或其他复制实用程序的机会吗?

des*_*gua 17

有了--parents你可以重新从源到目的地的目录。例如:

cp --parents ~/Downloads/test.txt ~/Desktop/
Run Code Online (Sandbox Code Playgroud)

将创建子目录~/Desktop/home/desgua/Downloads,然后复制test.txt到其中;和

cp --parents Downloads/test.txt ~/Desktop/
Run Code Online (Sandbox Code Playgroud)

将创建~/Desktop/Downloads.


Ora*_*Tux 5

您可以使用以下命令执行此操作

# rsync --recursive the_file /path/to/your/dir/that/doesn't/exists/
Run Code Online (Sandbox Code Playgroud)

注意:在路径末尾使用“/”:

  • 在源代码末尾使用“/”时,rsync 将复制最后一个文件夹的内容。当源代码末尾不使用“/”时,rsync 将复制最后一个文件夹和文件夹的内容。

  • 在目标末尾使用“/”时,rsync 会将数据粘贴到最后一个文件夹中。当目标末尾不使用“/”时,rsync 将使用最后一个目标文件夹名称创建一个文件夹,并将数据粘贴到该文件夹​​中。