cp命令linux 复制快捷键,主要拿来复制文件和目录,同时利用个别选项,还可以实现复制整个目录,以及比对两文件的新旧而给以升级等功能。
cp命令的基本格式如下:
[root@localhost~]#cp[选项]源文件目标文件
选项:
须要注意的是,源文件可以有多个,但这些情况下,目标文件必须是目录才可以。
这儿的软链接,类似于Windows系统中的快捷方法,而硬链接则是透过文件系统的inode号形成一个新的文件名。无论是复制软链接还是硬链接,都不是复制源文件。有关软链接和硬链接更详尽的介绍,可阅读《Linuxln命令》一节。
【例1】cp命令基本用法
cp命令既可以复制文件,也可以复制目录。我们先来瞧瞧怎么复制文件,比如:
[root@localhost~]#touchcangls#构建源文件[root@localhost~]#cpcangls/tmp/#把源文件不更名复制到/tmp/目录下
假如须要更名复制,则命令如下:
[root@localhost~]#cpcangls/tmp/bols#更名复制
假如复制的目标位置早已存在同名的文件,则会提示是否覆盖,由于cp命令默认执行的是“cp-i”的别称,比如:
[root@localhost~]#cpcangls/tmp/cp:是否覆盖"/tmp/cangls"?y#目标位置有同名文件linux 复制快捷键,所以会提示是否覆盖
接出来我们瞧瞧怎么复制目录,虽然复制目录只需使用“-r”选项即可red hat linux 下载,比如:
[root@localhost~]#mkdirmovie#构建测试目录[root@localhost~]#cp-r/root/movie//tmp/#目录原名复制
【例2】复制软链接文件
假如源文件不是一个普通文件,而是一个软链接文件,这么是否可以复制软链接的属性呢?我们试试:
[root@localhost~]#ln-s/root/cangls/tmp/cangls_slink#构建一个测试软链接文件/tmp/cangls_slink[root@localhost~]#ll/tmp/cangls_slinklrwxrwxrwx1rootroot126月1405:53/tmp/cangls_slink->/root/cangls#源文件本身就是一个软链接文件[root@localhost~]#cp/tmp/cangls_slink/tmp/cangls_t1#复制软链接文件,而且不加"-d"选项[root@localhost~]#cp-d/tmp/cangls_slink/tmp/cangls_t2#复制软链接文件,加入"-d"选项[root@localhost~]#ll/tmp/cangls_t1/tmp/cangls_t2-rw-r--r--1rootroot06月1405:56/tmp/cangls_t1#会发觉不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件lrwxrwxrwx1rootroot126月1405:56/tmp/cangls_t2->/root/cangls#而倘若加入了"-d"选项,则会复制软链接文件
这个事例说明,假若在复制软链接文件时不使用"-d"选项,则cp命令复制的是源文件,而不是软链接文件;只有加入了"-d"选项,才能复制软链接文件。请你们注意,"-d"选项对应链接是无效的。
【例3】保留源文件属性复制
我们发觉,在执行复制命令后,目标文件的时间会弄成复制命令的执行时间,而不是源文件的时间。诸如:
[root@localhost~]#cp/var/lib/mlocate/mlocate.db/tmp/[root@localhost~]#ll/var/lib/mlocate/mlocate.db-rw-r-----1rootslocate23280276月1402:08/var/lib/mlocate/mlocate.db#注意源文件的时间和所属组[root@localhost~]#ll/tmp/mlocate.db-rw-r-----1rootroot23280276月1406:05/tmp/mlocate.db#因为复制命令由root用户执行,所以目标文件的所属组为了root,但是时间也弄成了复制命令的执行时间
而当我们执行备份、日志备份的时侯,这种文件的时间可能是一个重要的参数,这就需执行"-p"选项了。这个选项会保留源文件的属性,包括所有者、所属组和时间。诸如:
[root@localhost~]#cp-p/var/lib/mlocate/mlocate.db/tmp/mlocate.db_2#使用"-p"选项[root@localhost~]#ll/var/lib/mlocate/mlocate.db/tmp/mlocate.db_2-rw-r-----rootslocate23280276月1402:08/tmp/mlocate.db_2-rw-r-----rootslocate23280276月1402:08/var/lib/mlocate/mlocate.db#源文件和目标文件的所有属性都一致,包括时间
我们之前讲过,"-a"选项相当于"-d、-p、-r"选项,这几个选项我们早已分别讲过了。所以,当我们使用"-a"选项时,目标文件和源文件的所有属性都一致linux移植,包括源文件的所有者,所属组、时间和软链接性。使用"-a"选项来代替"-d、-p、-r"选项愈发便捷。
【例4】"-l"和"-s"选项
我们假如使用"-l"选项,则目标文件会被构建为源文件的硬链接;而假如使用了"-s"选项,则目标文件会被构建为源文件的软链接。
这两个选项和"-d"选项是不同的,"d"选项要求源文件必须是软链接,目标文件才能复制为软链接;而"-l"和"-s"选项的源文件只需是普通文件,目标文件就可以直接复制为硬链接和软链接。诸如:
[root@localhost~]#touchbols#构建测试文件[root@localhost~]#ll-ibols262154-rw-r--r--1rootroot06月1406:26bols#源文件只是一个普通文件,而不是软链接文件[root@localhost~]#cp-l/root/bols/tmp/bols_h[root@localhost~]#cp-s/root/bols/tmp/bols_s#使用"-l"和"-s"选项复制[root@localhost~]#ll-i/tmp/bols_h/tmp/bols_s262154-rw-r--r--2rootroot06月1406:26/tmp/bols_h#目标文件/tmp/bols_h为源文件的硬链接文件932113lrwxrwxrwx1rootroot106月1406:27/tmp/bols_s->/root/bols#目标文件/tmp/bols_s为源文件的软链接文件