linux学习——档案目录之cp,rm,mv
    复制、删除与移动:cp, rm, mv 
要复制档案,请使用cp(copy) 这个指令即可,不过,cp 这个指令的用途可多了,除了单纯的复制之 
外,还可以建立连结档(就是快捷方式啦) ,比对两档案的新旧而予以更新,以及复制整个目录等等的功 
能呢!至于移动目录与档案,则使用mv (move) ,这个指令也可以直接拿来作更名(rename) 的动作 
!至于移除吗?那就是rm (remove) 这个指令啰~底下我们就先来瞧一瞧~ 
  cp (复制档案或目录) 
 [root@sky ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination) 
 [root@sky ~]# cp [options] source1 source2 source3 .... directory 
 选项不参数: 
 -a :相当于-pdr 的意忠,至于pdr 请参考下列说明;(常用) 
 -d :若来源文件为链接文件的属性(link file) ,则复制链接文件属性而非档案本身; 
 -f :为强制(force)的意忠,若目标档案已经存在且无法开启,则移除后再尝试一次; 
 -i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用) 
 -l :进行硬式连结(hard link)的连结档建立,而非复制档案本身; 
 -p :连同档案的属性一起复制过去,而非使用默认属性(备份常用) ; 
 -r :递归持续复制,用于目录的复制行为;(常用) 
 -s :复制成为符号链接文件(symbolic link) ,亦即【快捷方式】档案;
 -u :若destination 比source 旧才更新destination  ! 
 最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是【目 录】才行! 
复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是那个-a, -p 的 
选项,对于不同身份来说,差异则非常的大!底下的练习中,有的身份为root 有的身份为一般账号(在 
我这里用vbird 这个账号) ,练习时请特别注意身份的差别喔!好!开始来做复制的练习不观察: 
 范例一:用root 身份,将家目录下的.bashrc 复制到/tmp 下,并更名为 
 bashrc 
 [root@sky ~]# cp ~/.bashrc /tmp/bashrc 
 [root@sky ~]# cp -i ~/.bashrc /tmp/bashrc 
 cp: overwrite `/tmp/bashrc'? n <==n不覆盖,y 为覆盖 
 # 重复作两次动作,由于/tmp 底下已经存在bashrc 了,加上-i 选项后,则在覆盖前会询问使用者是否确定!可以按下n 或者y 来二次确认呢! 
 范例二:变换目录到/tmp ,并将/var/log/wtmp 复制到/tmp 且观察属性: 
 [root@sky ~]# cd /tmp 
 [root@sky tmp]# cp /var/log/wtmp . <==想要复制到当前目录,最后的.不要忘
 [root@sky tmp]# ls -l /var/log/wtmp wtmp 
  -rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp 
  -rw-r--r-- 1 root root 96384 Sep 24 14:06 wtmp 
 # 注意上面的特殊字体,在不加任何选项的情况下,档案的某些属性/权限会改变;这是个很重要的特性!要注意喔!还有,连档案建立的时间也不一样了! 
那如果你想要将档案的所有特性都一起复制过来该忟怎么办?可以加上-a 喔!如下所示: 
 [root@sky tmp]# cp -a /var/log/wtmp wtmp_2 
 [root@sky tmp]# ls -l /var/log/wtmp wtmp_2 
 -rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp 
 -rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 wtmp_2 
 # 看到了吧!整个资料特性完全一模一样!相当不错吧~这就是-a 的特性! 
这个cp 的功能很多,由于我们常常会进行一些数据的复制,所以也会常常用到这个指令的。一般来 
说,我们如果去复制别人的数据(当然,该档案你必须要有read 的权限才行啊!^_^) 时,总是希望 
复制到的数据最后是我们自己的,所以,在预设的条件中,cp 的来源档与目的档的权限是不同的,目 
的档的拥有者通常会是指令操作者本身。丼例来说,上面的范例二中,由于我是root 的身份,因此复 
制过来的档案拥有者与群组就改变成为root 所有了!这样说,可以明白吗?^_^ 
由于具有这个特性,因此当我们在进行备份的时候,某些需要特别注意的特殊权限档案,例如密码文 
件(/etc/shadow) 以及一些配置文件,就不能直接以cp 来复制,而必须要加上-a 或者是-p 等等可以 
完整复制档案权限的选项才行!另外,如果你想要复制档案给其他的使用者,也必须要注意到档案的 
权限(包括读、写、执行以及档案拥有者等等) ,否则,其他人还是无法针对你给予的档案进行修订的动 
作喔!注意注意! 
 范例三:复制/etc/ 这个目录下的所有内容到/tmp 底下 
 [root@sky tmp]# cp /etc/ /tmp 
 cp: omitting directory `/etc' <== 如果是目录则不能直接复制,要加上-r 的选项 
 [root@sky tmp]# cp -r /etc/ /tmp 
 # 还是要再次的强调喔!-r 是可以复制目录,但是,档案不目录的权限可能会被改变所以,也可以利用『cp -a /etc /tmp 』来下达指令喔!尤其是在备份的情况下! 
 范例四:将范例一复制的bashrc 建立一个连结档(symbolic link) 
 [root@sky tmp]# ls -l bashrc 
 -rw-r--r-- 1 root root 176 Sep 24 14:02 bashrc <==先观察一下档案情况 
 [root@sky tmp]# cp -s bashrc bashrc_slink 
 [root@sky tmp]# cp -l bashrc bashrc_hlink 
 [root@sky tmp]# ls -l bashrc* 
 -rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc <==与源文件不太一样了! 
 -rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc_hlink 
 lrwxrwxrwx 1 root root 6 Sep 24 14:20 bashrc_slink -> bashrc 
范例四可有趣了!使用-l 及-s 都会建立所谓的连结档(link file) ,但是这两种连结档即有不一样的情 
况。这是忟么一回事啊?那个-l 就是所谓的实体链接(hard link) ,至于-s 则是符号链接(symbolic 
link) ,简单来说,bashrc_slink 是一个【忚捷方式】,这个快捷方式会连结到bashrc 去!所以你会看 
到档名右侧会有个指向(->)的符号! 
至于bashrc_hlink 档案与bashrc 的属性与权限完全一模一样,与尚未进行连结前的差异则是第二栏的 
link 数由1 变成2 了!
 范例五:若~/.bashrc 比/tmp/bashrc 新才复制过来 
 [root@sky tmp]# cp -u ~/.bashrc /tmp/bashrc 
 # 这个-u 的特性,是在目标档案不来源档案有差异时,才会复制的。所以,比较常被用于【备份】的工作当中喔!^_^ 
 范例六:将范例四造成的bashrc_slink 复制成为bashrc_slink_1 与 bashrc_slink_2 
 [root@sky tmp]# c