Linux 复制命令 cp
要复制文件,请使用cp (copy)这个指令即可~不过,cp 这个指令的用途可多了~除了单纯的复制之外,还可以建立连结档(就是快捷方式喽),比对两文件的新旧而予以更新,以及 复制整个目录等等的功能呢!至于移动目录与文件,则使用mv (move),这个指令也可以直接拿来作更名(rename)的动作喔!至于移除吗?那就是rm (remove)这个指令喽~底下我们就来瞧一瞧先~
复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是那个-a,-p的选项,对 于不同身份来说,差异则非常的大!底下的练习中,有的身份为root有的身份为一般账号(在我这里用dmtsai 这个账号),练习时请特别注意身份的差别喔!好!开始来做复制的练习与观察:
这个cp的功能很多,由于我们常常会进行- -些数据的复制,所以也会常常用到这个指令的。一般来说,我们如果去复制别人的数据(当然,该文件你必须要有read 的权限才行啊! ^_ ^)时,总是希望复制到的数据最后是我们自己的,所以,在预设的条件中,cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身。举例来说,上面的范例二中, 由于我是root 的身份,因此复制过来的文件拥有者与群组就改变成为root 所有了!这样说, 可以明白吗? ^_ ^
由于具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限文件,例如密码文件(/etc/shadow) 以及一些配置文件,就不能直接以cp来复制,而必须要加上-a或者是-p等等可以完整复制文件权限的选项才行!另外,如果你想要复制文件给其他的使用者,也必须要注意到文件的权限(包含读、写、执行以及文件拥有者等等),否则, 其他人还是无法针对你给予的文件进行修订的动作喔!注意注意!
范例四可有趣了!使用-1及-s都会建立所谓的连结档(link file),但是这两种连结档却有不一样的情况。这是怎么一回事啊?那个 -l 就是所谓的实体链接(hard link), 至于-s 则是符号链接(symbolic link),简单来说, bashrc_ slink是一个「快捷方式」,这个快捷方式会连结到bashrc去!所以你会看到档名右侧会有个指向(->)的符号!
至于bashrc_ hlink 文件与bashre的属性与权限完全一模一样, 与尚未进行连结前的差异则是第二栏的link数由1变成2了!鸟哥这 里先不介绍实体链接。