我想通过命令行将目录从一个地方复制到另一个地方

pra*_*eep 132 command-line sudo

我想将一个目录从一个地方复制到另一个文件夹。

sudo cp是命令,但在那之后我应该输入什么?目的地还是源头?

Jam*_*dge 204

-a标志可能是您正在寻找的:

cp -a /path/from /path/to
Run Code Online (Sandbox Code Playgroud)

-a标志打开递归行为(也可以使用该-R标志完成),并且还将尝试保留元数据,例如文件所有权、权限、时间戳、链接等。

sudo如果您要复制到当前用户不拥有的位置,当前用户对正在复制的文件没有读取权限,或者您想保留当前用户不拥有的文件的所有权,则只需要使用用户。

  • 此外,根据经验,它总是像“[command] [source] [destination]”。这适用于`mv`、`cp`、`ren`。 (4认同)

Hri*_*ish 27

如果要复制目录,请使用以下命令:

sudo cp -R Source_Folder Destination_Folder
Run Code Online (Sandbox Code Playgroud)

此命令也可用于复制文件,只需删除用于复制内部文件夹递归结构的“-R”(如果我们提到的 Source_Folder 路径中有任何)。

再举一个例子:

sudo cp -R /var/www/* /home/test_user/
Run Code Online (Sandbox Code Playgroud)

如有任何问题,请随时发表评论。


小智 8

对于通过终端复制文件夹,您可以使用:

cp -a /source/. /dest/
Run Code Online (Sandbox Code Playgroud)

-a选项是改进的递归选项。它保留所有文件属性并保留符号链接。

.在源路的尽头是一个特定的CP语法,允许复制所有文件和文件夹,包括隐藏的。

另一种选择是rsync

rsync -r source/ destination
Run Code Online (Sandbox Code Playgroud)