- [rootlinux ~]# cp [options] source1 source2 source3 .... directory
参数 -a 相当于 -pdr 的意思 -d 若来源档为连结档的属性(link file)则复制连结档属性而非档案本身 -f 为强制 (force) 的意思若有重复或其他疑问时不会询问使用者而强制复制 -i 若目的档(destination)已经存在时在覆盖时会先询问是否真的动作 -l 进行硬式连结 (hard link) 的连结档建立而非复制档案本身 -p 连同档案的属性一起复制过去而非使用预设属性 -r 递回持续复制用于目录的复制行为 -s 复制成为符号连结档 (symbolic link)亦即‘捷径’档案 -u 若 destination 比 source 旧才更新 destination 最后需要注意的如果来源档有两个以上则最后一个目的档一定要是‘目录’才行
- 范例
范例一将家目录下的 .bashrc 复制到 /tmp 下并更名为 bashrc [rootlinux ~]# cd /tmp [rootlinux tmp]# cp ~/.bashrc bashrc [rootlinux tmp]# cp -i ~/.bashrc bashrc cp: overwrite basrhc? n # 重复作两次动作由于 /tmp 底下已经存在 bashrc 了加上 -i 参数 # 则在覆盖前会询问使用者是否确定可以按下 n 或者 y 呢 # 但是反过来说如果不想要询问时则加上 -f 这个参数来强制直接覆盖 范例二将 /var/log/wtmp 复制到 /tmp 底下 [rootlinux tmp]# cp /var/log/wtmp . <想要复制到目前的目录最后的 . 不要忘 [rootlinux tmp]# ls -l /var/log/wtmp wtmp -rw-rw-r-- 1 root utmp 71808 Jul 18 12:46 /var/log/wtmp -rw-r--r-- 1 root root 71808 Jul 18 21:58 wtmp # 注意到了吗在不加任何参数的情况下档案的所属者会改变连权限也跟着改变了 # 这是个很重要的特性要注意喔还有连档案建立的时间也不一样了 # 如果您想要将档案的所有特性都一起复制过来可以加上 -a 喔 [rootlinux tmp]# cp -a /var/log/wtmp wtmp_2 [rootlinux tmp]# ls -l /var/log/wtmp wtmp_2 -rw-rw-r-- 1 root utmp 71808 Jul 18 12:46 /var/log/wtmp -rw-rw-r-- 1 root utmp 71808 Jul 18 12:46 wtmp_2 # 了了吧整个资料特性完全一模一样ㄟ真是不赖这就是 -a 的特性 范例三复制 /etc/ 这个目录下的所有内容到 /tmp 底下 [rootlinux tmp]# cp /etc/ /tmp cp: omitting directory /etc < 如果是目录不能直接复制要加上 -r 的参数 [rootlinux tmp]# cp -r /etc/ /tmp # 还是要再次的强调喔 -r 是可以复制目录但是档案与目录的权限会被改变 # 所以也可以利用 cp -a /etc /tmp 来下达指令喔 范例四将范例一复制的 bashrc 建立一个连结档 (symbolic link) [rootlinux tmp]# ls -l bashrc -rw-r--r-- 1 root root 395 Jul 18 22:08 bashrc [rootlinux tmp]# cp -s bashrc bashrc_slink [rootlinux tmp]# cp -l bashrc bashrc_hlink [rootlinux tmp]# ls -l bashrc* -rw-r--r-- 2 root root 395 Jul 18 22:08 bashrc -rw-r--r-- 2 root root 395 Jul 18 22:08 bashrc_hlink lrwxrwxrwx 1 root root 6 Jul 18 22:31 bashrc_slink -> bashrc # 那个 bashrc_slink 是由 -s 的参数造成的建立的是一个‘捷径’ # 所以您会看到在档案的最右边会显示这个档案是‘连结’到哪里去的 # 至于那个 bashrc_hlink 有趣了建立了这个档案之后 bashrc 与 bashrc_hlink # 所有的参数都一样只是第二栏的 link 数改变成为 2 了而不是原本的 1 喔 # 这两种连结的方式的异同我们会在下一章里面进行介绍的 范例五若 ~/.bashrc 比 /tmp/bashrc 才复制过来 [rootlinux tmp]# cp -u ~/.bashrc /tmp/bashrc # 这个 -u 的特性是在目标档案与来源档案有差异时才会复制的。 # 所以比较常被用于‘备份’的工作当中喔 ^_^ 范例六将范例四造成的 bashrc_slink 复制成为 bashrc_slink_2 [rootlinux tmp]# cp bashrc_slink bashrc_slink_2 [rootlinux tmp]# ls -l bashrc_slink* lrwxrwxrwx 1 root root 6 Jul 18 22:31 bashrc_slink -> bashrc -rw-r--r-- 1 root root 395 Jul 18 22:48 bashrc_slink_2 # 这个例子也是很有趣喔原本复制的是连结档但是却将连结档的实际档案复制过来了 # 也就是说如果没有加上任何参数时复制的是原始档案而非连结档的属性 # 若要复制连结档的属性就得要使用 -d 或者 -a 的参数了 范例七将家目录的 .bashrc 及 .bash_history 复制到 /tmp 底下 [rootlinux tmp]# cp ~/.bashrc ~/.bash_history /tmp # 可以将多个资料一次复制到同一个目录去
- shihko | 2009-11-28 16:31:01
- 有0人认为这个回答不错 | 有0人认为这个回答没有帮助
- 可使用以下命令将sourceDir文件夹拷贝到destDir文件夹下: cp sourceDir/ destDir/ -rf
- poiuy_188 | 2009-11-28 20:02:35
- 有0人认为这个回答不错 | 有0人认为这个回答没有帮助
- 在菜单附件中选终端就行了。 也可以用CtrlAlt(F1..F12)去调出12个分别的终端界面。