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


126

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

sudo cp是命令,但是在那之后我应该输入什么?目的地或来源优先?


10
man cp帮助吗?
Portablejim

Answers:


197

-a标志可能是您要查找的内容:

cp -a /path/from /path/to

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

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


4
另外,根据经验,它总是那样[command] [source] [destination]。这适用于mvcpren
Vineet Menon

1
@VineetMenon您可能mv不是这样ren
jcollado 2011年

@jcollado:我已经添加了mv
Vineet Menon

@VineetMenon是的,您是对的,我没有发现mv列表中已经包含该名称。无论如何,据我所知,我没有任何ren命令(除非您有别名或其他设置)。
jcollado 2011年

1
@jcollado:haha ...那是我的别名rename...:D
Vineet Menon

28

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

sudo cp -R Source_Folder Destination_Folder

通过仅删除用于复制内部文件夹的递归结构的“ -R”,该命令也可以用于复制文件(如果我们提到的Source_Folder路径中有文件)。

再举一个例子:

sudo cp -R /var/www/* /home/test_user/

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


7

通过终端复制文件夹时,可以使用

cp -a /source/. /dest/

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

的。源路径末尾是特定的cp语法,该语法允许复制所有文件和文件夹,包括隐藏的文件和文件夹。

另一个是rsync

rsync -r source/ destination

2

我认为更好的方法是使用gksu nautilus命令,并且可以像往常一样使用通用GUI复制任何内容。


1
假定您使用的是GUI,而不是CLI。
Phill Healey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.