有人可以为我提供实现此操作所需的命令行语法示例吗?
#1 楼
您可以使用以下命令将文件夹/source
的内容复制到另一个现有文件夹/dest
:-a
选项是一种改进的递归选项,它保留了所有文件属性,并且还保留符号链接。源路径末尾的
.
是特定的cp
语法,允许复制所有文件和文件夹(包括隐藏的文件和文件夹)。#2 楼
另一个是rsync
:rsync -a source/ destination
rsync
的优点是:初始同步后,它将仅复制已更改的文件。
您可以通过网络使用它,便于$ HOME中的文件,尤其是配置文件。
评论
我认为您不需要星号。 rsync -r源/目标应该足够了,不是吗?
–约书亚
15年12月17日在15:10
这个更合适:'rsync -rtvp source / * destination'
–shridutt kothari
16-09-16在14:14
-r不适用于隐藏的文件/文件夹
– Nam G VU
16-09-21在4:42
这不会复制隐藏文件,因为bash仅扩展*为非隐藏文件。 @Joschua的解决方案更安全。
–绍堡
17年9月9日23:00
如果是大文件夹,则在复制askubuntu.com/questions/609303/…时,您可能希望使用以下选项之一查看进度。
–马修·洛克(Matthew Lock)
18年11月13日在5:19
#3 楼
假设您在~
中有一个名为folder1的文件夹,folder1内有1个名为file1的文件,还有2个名为sub1和sub2的文件夹,每个文件夹中都有其他文件和文件夹。要复制
~/folder1
的所有内容到~/new_folder1
,您将使用cp -r ~/folder1/. ~/new_folder1
new_folder1
将包含folder1
的所有文件和文件夹。cp
是使用以下命令复制的命令终端,-r
使其递归(因此,当前目录+当前目录中的其他目录)~/folder1
是原始文件夹,~/new_folder1
是原始内部文件/文件夹的目标文件夹。评论
它不会捕获隐藏文件
–Portablejim
2011-12-11 13:04
谢谢布鲁诺!它帮助我理解了语法,尽管我不得不稍作更改(删除〜符号)。可能是因为目标文件夹位于/ opt中,该文件夹位于另一个文件系统中。还要感谢Portablejim记住隐藏文件的事情!
– Pandisvezia
2011-12-11 15:51
拖延期很重要。没有它,有时它可能会创建一个新的子目录〜/ new_folder1 / folder1而不是复制内容。
– Wisbucky
2015年1月19日23:00
为什么不使用cp -r〜/ folder1 / *〜/ new_folder1
–Alex78191
18年7月24日在10:59
@ Alex78191 [root @ home]#mkdir food [root @ home]#cd food / [root @ food]#mkdir .fruit [root @ food]#mkdir蔬菜[root @ food]#触摸蔬菜/胡萝卜[root @ food ]#触摸.fruit / apple [root @ food]#ls *胡萝卜[root @ food]#
–布鲁诺·佩雷拉(Bruno Pereira)
18年7月24日在11:19
#4 楼
简单示例。将目录dir_1及其内容(文件)复制到目录dir_2:
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
仅复制dir_1的内容(文件)到目录dir_2:
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_
_files_
是位于目录中实际文件的占位符。#5 楼
检查此http://www.cyberciti.biz/faq/copy-folder-linux-command-line/有关复制文件夹的更多信息。希望对您有所帮助。cp Command
是Linux命令,用于复制文件和目录。语法如下:cp source destination
cp dir1 dir2
cp -option source destination
cp -option1 -option2 source destination
在此示例中,将
cp
文件夹及其所有文件复制到/home/vivek/letters
目录:cp -avr /home/vivek/letters /usb/backup
在哪里,
/usb/backup
:保留指定的属性,例如目录,文件模式,所有权,时间戳,如果可能的话,还包含其他属性:上下文,链接,xattr等。-a
:说明正在执行的操作。-v
:递归复制目录。示例
将名为/ tmp / conf的文件夹复制到/ tmp / backup :
$ cp -avr /tmp/conf/ /tmp/backup
评论
这不是问题要问的。
–AStopher
15年3月8日在13:18
(将-r与-a一起使用是多余的;在gnu cp上-a与“ -dr --preserve = all”相同)
– cristoper
18年2月14日在16:35
cp:-R和-r选项不能一起指定。
– IgorGanapolsky
18/12/19在23:07
#6 楼
如果有两个文件夹:(具有写许可权)drwxr-xr-x 4 vimal vimal 4096 Sep 9 12:17 .
drwxr-xr-x 3 root root 4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal 4096 Sep 9 12:15 DATA
drwxrwxrwx 7 vimal vimal 4096 Sep 9 12:15 PORTAL
如果您位于名为PORTAL的文件夹中,要在其中复制另一个文件夹的所有内容,请在同级
,那么您将要做
vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .
您必须注意2个点。最后一个点表示复制到当前文件夹中
和/ DATA /之后的
。表示要复制DATA文件夹中的所有内容,而不是DATA文件夹本身。
如果删除此结尾的“”。从/ DATA /
,然后整个DATA文件夹将被复制到PORTAL内(您要从中应对)。
#7 楼
我喜欢此命令rsync -av --progress ~/code/project-source/. ~/code/project-destination --exclude .git --exclude node_modules
下面列出了rsync命令中的一些常用选项:
-v,-详细:详细输出
-q,-安静:禁止显示消息输出
-a,-存档:同步时归档文件和目录(-an等于以下选项-rlptgoD )
-r,-递归:以递归方式同步文件和目录
-b,-backup:在同步期间进行备份
-u,-update:不要将文件从源复制到如果目标文件较新,则为目标
-l,-链接:在同步期间将符号链接复制为符号链接
-n,-空运行:在不同步的情况下进行试运行
-e,-rsh = COMMAND:提及要在rsync中使用的远程Shell,
-z,–compress:在传输期间压缩文件数据
-h,–人类可读:以人类可读的格式显示输出编号
–progress:显示传输过程中的同步进度
评论
@enzotib我正在尝试使用此命令将“下载/ textext”的内容复制到“〜/ .config / inkscape / extensions /”。使用命令输入“ cp -a/Downloads/textext/。/~/.config/inkscape/extensions/”。但这不起作用
–奖项
2014年2月5日在11:09
@DylanValade:-a已经隐含--preserve = all,它比-p = --preserve = mode,所有权,时间戳宽。
– Enzotib
2014年12月22日在16:22
@BennyNeugebauer:scp用于在网络上复制(通过ssh),并且仅加密通信通道,而不加密目标文件系统上的文件。
– Enzotib
2015年7月9日在13:46
rm递归选项是-r cp是-a,亲爱的linux人们如何记住所有这些
– Pawel Cioch
16年3月3日在18:52
“源路径末尾的。是特定的cp语法,允许复制所有文件和文件夹,包括隐藏的文件和文件夹。”,这与cp不相关,但与bash有关。点表示“此位置”,并避免使用bash globing(默认情况下以/开头的文件/目录)。没有扩展。
–布鲁诺·佩雷拉(Bruno Pereira)
19年9月5日在12:13