赞
踩
cp命令小高级用法
- #常用命令选项
- 默认覆盖
- -r/R 递归
- -l 拷贝硬链接
- -s 软链接(不支持文件夹目录)
- -n 不覆盖(使前面的-i失效)
- -i,--interactive 交互模式(使前面的-n失效)
- -a,--archive 原样复制,保留全部(包括mtime,atime,文件的所有者,权限等)
-
- -L,--dereference 跟随符号链接(默认)
- -P,--no-dereference 不跟随符号链接,也就是只拷贝符号链接,不拷贝符号链接指向的实际文件
- -v 显示详细信息
- -u,--update 当源文件比较新时复制
- -b 同名文件会以~结尾备份
-
- --remove-destination 复制前先删除
- -f 如果目标文件不能打开,那么先删除再复制(-n参数会使-f失效)
-
-

例子
- #复制并覆盖当前bbb文件为/tmp/aaa文件
- cp bbb /tmp/aaa
-
- #复制并覆盖当前所有可见文件和目录到/tmp/aaa目录下
- cp -r * /tmp/aaa
-
- #复制并覆盖当前所有文件和目录到/tmp/aaa目录下(包括隐藏文件)
- cp -r . /tmp/aaa
-
- #复制不覆盖当前所有文件和目录到/tmp/aaa目录下(包括隐藏文件)
- cp -rn . /tmp/aaa
-
- #原样复制并覆盖当前所有可见文件和目录到/tmp/aaa目录下
- cp -ar * /tmp/aaa
-
- #生成软连接bbb指向aaa
- cp -s aaa bbb

总结:
很多发行版可能已经设置了命令别名,比如本人的centos7通过alias命令查看将会看到这么一句alias cp='cp -i',所以当我们使用cp命令时(其实相当于使用cp -i)如果目标文件已经存在,则会提示你而不会直接覆盖。
但是在很多场景下我们都希望直接覆盖而不是提示
则可以临时取消命令别名
- unalias cp #删除命令别名
- cp -r * /tmp/aaa/ #复制当前所有到/tmp/aaa/下并覆盖
- alias cp='cp -i' #重新生成命令别名
-
原文地址http://www.daileinote.com/computer/linux_cmd/09
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。