标签:linux基础命令
描述:
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
说明:
cp命令:cp - copy files and directories
用法: cp 源文件 目标文件;
语法格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
单源复制:cp [OPTION]... [-T] SOURCE DEST
如DEST不存在,则会事先创建这个目录,然后复制文件的数据流至DEST中
多源复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
常用选项:
-i:交互式复制,即复制前提示是否覆盖
-f:强制覆盖目标文件
-r,R:递归复制目录
-d:复制符号链接文件本身,而非其指向的源文件
-a:用于实现归档
- -preserve=[ATTR_LIST]
mode:权限
timestamps:时间戳
xattr:扩展属性
links:符号链接
all:上诉所有属性
-p:等同于- -preserv=mode,ownership,timestamp
-v:显示过程
示例:
1,复制当前目录下的文件a至/tmp下,文件a事先存在
[root@localhost ~]# cp a /tmp [root@localhost ~]# ls /tmp a ks-script-mvrGLm ks-script-mvrGLm.log yum.log
2,复制当前目录下的文件a,文件b至/tmp/e下,文件e事先存在:
[root@localhost ~]# cp a /tmp/e cp: overwrite `/tmp/e‘? y
3,复制当前目录下的文件a至/tmp/A下,目录事先存在:
[root@localhost ~]# cp a /tmp/A [root@localhost ~]# ls /tmp/A a
4,复制当前目录下的文件a,b至G下,G事先不存在:
[root@localhost ~]# cp a b G cp: target `G‘ is not a directory
5,复制当前目录下的文件a ,b至/tmp/z下,文件z事先存在:
[root@localhost ~]# cp a b c d /tmp/z cp: target `/tmp/z‘ is not a directory
6,复制当前目录下的文件a,b至/tmp/B下,目录B事先存在:
[root@localhost ~]# cp a b /tmp/B [root@localhost ~]# ls /tmp/B a b
7,复制当前目录下的目录A至/tmp下:
[root@localhost ~]# cp -r A /tmp [root@localhost ~]# ls /tmp/A c d
8,复制当前目录下的目录A至/tmp/a下,文件a事先存在:
[root@localhost ~]# cp -r A /tmp/a cp: cannot overwrite non-directory `/tmp/a‘ with directory `A‘
9,复制当前目录下的目录A至/tmp下:
[root@localhost ~]# cp -r A /tmp [root@localhost ~]# ls /tmp/A c d
习题:
1 ,使用别名命令baketc,每日将/etc/ 目录下所有文件,备份到/testdir/ 下独立的新目录下,
并要求新目录为格式为 backupYYYY-mm-dd ,备份过程可见
# alias baketc=‘cp -arv /etc/ /testdir/backup$(date +%F)‘
2 ,先创建/testdir/rootdir 目录,再复制/root 所有下文件到该目录内,并要求保留原有权限
# cp --preserve=mode -r /root/ /testdir/rootcp
结束语:
以上内容是本人对cp命令的总结,由于本人初学Linux,对此命令认识和理解不够全面和深入,难免会有遗漏,望各位路过的达人多多指教,不胜感激!
标签:linux基础命令
原文地址:http://suifengsky.blog.51cto.com/11393684/1831802