cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。这说明命令行和shell脚本的执行方式有些不同。
命令格式
cp [选项] 源 目的
或 cp [选项] -t 目录 源
命令功能
将源文件复制至目标文件,或将多个源文件复制至目标目录。
命令参数
- -a:此参数的效果和同时指定"-dpR"参数相同;
- -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
- -f:强行复制文件或目录,不论目标文件或目录是否已存在;
- -i:覆盖既有文件之前先询问用户;
- -l:对源文件建立硬连接,而非复制文件;
- -p:保留源文件或目录的属性;
- -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
- -s:对源文件建立符号连接,而非复制文件;
- -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
- -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;-b:覆盖已存在的文件目标前将目标文件备份;
- -v:详细显示命令执行的操作。
复制单个文件到目标目录,文件在目标文件中不存在
代码语言:javascript复制两个文件的时间一样
> cp 1.txt rumenz
两个文件的时间一样
> cp -a 1.txt rumenz
目标文件存在,会询问是否覆盖
代码语言:javascript复制> cp 1.txt rumenz/
cp: overwrite ‘rumenz/1.txt’? y
复制整个目录
代码语言:javascript复制> cp -a rumenz/ rumenzz
或
> cp -r rumenz/ rumenzz
目标目录存在时,整个源目录被复制到目标目录里面
复制的 1.txt 建立一个连结档 1_link.txt
代码语言:javascript复制> cp -s 1.txt 1_link.txt
> ls -al
1_link.txt -> 1.txt
复制某个目录下所有的文件到其它目录
代码语言:javascript复制> cp rumenz/* /tmp
复制多个文件到某个目录
代码语言:javascript复制> cp -t rumenz 1.txt 2.txt