- 浏览: 11663 次
最新评论
Linux cp命令详解
2012年01月06日
源:http://zhuairlunjj.blog.163.com/blog/static/80050945201079112227872/
cp (复制档案或目录)
[root@linux ~]# cp [-adfilprsu] 来源档(source) 目的n(destination)
[root@linux ~]# cp [options] source1 source2 source3 …. directory
参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的n(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !
最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!
范例:
范例一:将家目录下的 .bashrc 复制到 /tmp 下,并更名为 bashrc
[root@linux ~]# cd /tmp
[root@linux tmp]# cp ~/.bashrc bashrc
[root@linux tmp]# cp -i ~/.bashrc bashrc
cp: overwrite `basrhc’? n
# 重复作两次动作,由于 /tmp 底下已经存在 bashrc 了,加上 -i 参数,
# 则在覆盖前会询问使用者是否确定!可以按下 n 或者 y 呢!
# 但是,反过来说,如果不想要询问时,则加上 -f 这个参数来强制直接覆盖!
范例二:将 /var/log/wtmp 复制到 /tmp 底下
[root@linux tmp]# cp /var/log/wtmp . bashrc
# 那个 bashrc_slink 是由 -s 的参数造成的,建立的是一个『快捷方式』,
# 所以您会看到在档案的最右边,会显示这个档案是『连结』到哪里去的!
# 至于那个 bashrc_hlink 有趣了!建立了这个档案之后, bashrc 与 bashrc_hlink
# 所有的参数都一样,只是,第二栏的 link 数改变成为 2 了~而不是原本的 1 喔!
# 这两种连结的方式的异同,我们会在下一章里面进行介绍的!
范例五:若 ~/.bashrc 比 /tmp/bashrc 新才复制过来
[root@linux tmp]# cp -u ~/.bashrc /tmp/bashrc
# 这个 -u 的特性,是在目标档案与来源档案有差异时,才会复制的。
# 所以,比较常被用于『备份』的工作当中喔! ^_^
范例六:将范例四造成的 bashrc_slink 复制成为 bashrc_slink_2
[root@linux tmp]# cp bashrc_slink bashrc_slink_2
[root@linux tmp]# ls -l bashrc_slink*
lrwxrwxrwx 1 root root 6 Jul 18 22:31 bashrc_slink -> bashrc
-rw-rCrC 1 root root 395 Jul 18 22:48 bashrc_slink_2
# 这个例子也是很有趣喔!原本复制的是连结档,但是却将连结档的实际档案复制过来了
# 也就是说,如果没有加上任何参数时,复制的是源文件,而非连结文件的属性!
# 若要复制连结文件的属性,就得要使用 -d 或者 -a 的参数了!
范例七:将家目录的 .bashrc 及 .bash_history 复制到 /tmp 底下
[root@linux tmp]# cp ~/.bashrc ~/.bash_history /tmp
# 可以将多个数据一次复制到同一个目录去!
这个 cp 的功能很多,而由于我们常常在进行一些数据的复制,所以也会常常用到这个指令的。 一般来说,我们如果去复制别人的数据 (当然,该档案您必须要有 read 的权限才行啊! ^_^) 时, 总是希望复制到的数据最后是我们自己的,所以,在预设的条件中, cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身。举例来说, 上面的范例二中,由于我是 root 的身份,因此复制过来的档案拥有者与群组就改变成为 root 所有了! 这样说,可以明白吗?! ^_^
由于具有这个特性,因此,当我们在进行备份的时候,某些需要特别注意的特殊权限档案, 例如密码文件 (/etc/shadow) 以及一些设定档,就不能直接以 cp 来复制,而必须要加上 -a 或者是 -p 等等可以完整复制档案权限的参数才行!另外,如果您想要复制档案给其它的使用者,也必须要注意到档案的权限(包含读、写、执行以及档案拥有者等等),否则,其它人还是无法针对您给予的档案进行修订的动作喔!注意注意!
至于上面的范例当中,第四个范例是最有趣的,使用 -l 及 -s 都会建立所谓的连结档 (link file),但是这两种连结档确有不一样的展现情况。这是怎么一回事啊? 那个 -l 就是所谓的 hard link ,至于 -s 则是 symbolic link ,鸟哥这里先不介绍, 因为这个涉及 i-node 的相关知识,我们还没有介绍到,下一章再来讨论这个 link 的问题喔! 总之,由于 cp 有种种的档案属性与权限的特性,所以,在复制时,您必须要清楚的了解到:
? 是否需要完整的保留来源档案的信息?
? 来源档案是否为连结档 (symbolic link file)?
? 来源档是否为特殊的档案,例如 FIFO, socket 等?
? 来源文件是否为目录?
发表评论
-
[热门][转载]2012年下考酡语一轮温习必建一Unit 2 English
2012-01-20 12:02 573[热门][转载]2012年下考酡语一轮温习必建一Unit 2 ... -
螺丝规格定义与认识
2012-01-20 12:02 538螺丝规格定义与认识 2010年01月28日 论坛首页 & ... -
安徽省皖中省级示范三校08-09学年高二下学期期中考试
2012-01-20 12:02 682安徽省皖中省级示范三 ... -
消息处理函数
2012-01-19 16:53 465消息处理函数 2010年07 ... -
调用API函数
2012-01-19 16:53 554调用API函数 2010年11月26 ... -
从VC6到VC9移植代码问题总结收藏
2012-01-19 16:52 407从VC6到VC9移植代码问题 ... -
窗口和消息
2012-01-19 16:52 419窗口和消息 2011年06月27 ... -
vs2008使用点滴
2012-01-19 16:52 1033vs2008使用点滴 2011年02 ... -
最新高配电脑
2012-01-17 06:35 431最新高配电脑 2012年01月09日 电脑型号 技嘉 ... -
协议适配器错误的解决方法
2012-01-17 06:35 558协议适配器错误的解决方法 2011年12月16日 Cas ... -
my.ini(my.cnf)与mysql优化指南
2012-01-17 06:35 861my.ini(my.cnf)与mysql优化指南 2011年 ... -
VB的webbrowser点击网页上的按钮链接问题
2012-01-16 05:16 1288VB的webbrowser点击网页上的按钮链接问题 2010 ... -
关于升级了IE后 VB6.0中添加webBrowser控件的问题
2012-01-16 05:16 858关于升级了IE后 VB6.0中添加webBrowser控件的问 ... -
VB自动登陆网络站点详解(二):Inet控件与WebBrowser控件配合使用
2012-01-16 05:16 767VB自动登陆网络站点详解(二):Inet控件与WebBrows ... -
如何用vb获取指定网页的验证码啊?(可以用webbrowser)
2012-01-16 05:16 575如何用vb获取指定网页的验证码啊?(可以用webbrowser ... -
VB代码VB小程序: 捕获 WebBrowser控件的鼠标和键盘事件
2012-01-16 05:16 1101VB代码VB小程序: 捕获 Web ...
相关推荐
Linux下的cp命令详解,希望对大家有用,谢谢合作!
Linux必备命令--之cp命令详解
Linux cp命令 Linux cp命令主要用于复制文件或目录。 语法 cp [options] source dest 或 cp [options] source... directory 参数说明: -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有...
Linux Find 命令详解 非常详尽
13. cp 14. mv 15. rm 16. find 17. grep 18. more 19. less 20. head 21. tail 22. cut 23. at 24. crontab 25. sleep 26. kill 27. ps pstree 28. top 29. expr 30. locate 31. split 33. man,info 34. alias 35....
Linux系统命令及其使用详解:cat cd chmod ch cp cut
本文为大家详细介绍Linux中cp命令和scp命令的使用。
本篇文章主要介绍了Linux 的cp命令详解, cp指令用于复制文件或目录,有兴趣的可以了解一下。
主要描述linux中常用到的命令:cd,ls,chown ,cp,cup,find,less,ln...等。
Linux常用命令 – 已学 cd (路径的切换) rm(后接-rf 可删除文件或文件夹) ls(查看当前路径下的文件和文件夹) mkdir(创建文件夹) touch(创建文件) cat(查看文件内容)mv (移动文件,也可以重命名...
Linux tcpdump命令 Linux tcpdump命令用于倾倒网络传输数据。 执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中,你必须是系统管理员。 语法tcpdump [-adeflnNOpqStvx][-c][-dd][-ddd][-F]...
Linux 系统命令及其使用详解 cat cd chmod chown cp cut 名称: cat cat cat cat 使用权限:所有使用者 使用方式: cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 >...
主要介绍了Linux 中的文件复制cp命令和scp命令详解的相关资料,需要的朋友可以参考下
Linux系统命令及其使用详解.doc Linux 系统命令及其使用详解(大全) (来源: 中国系统分析员) cat cd chmod chown cp cut 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [-...
大数据基础-Linux基础详解课程
linux常用命令大全 1.Linux管理文件和目录的命令 命令 功能 命令 功能 Pwd 显示当前目录 ls 查看目录下的内容 Cd 改变所在目录 cat 显示文件的内容 Grep 在文件中查找某字符 cp 复制文件 Touch 创建文件 mv 移动...