cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它能够将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,不然将出现错误。linux
cp(选项)(参数)
-a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号链接时,把目标文件或目录也创建为符号链接,并指向与源文件或目录链接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件以前先询问用户; -l:对源文件创建硬链接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的全部文件与子目录一并处理; -s:对源文件创建符号链接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操做。
-R
选项;若是把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中全部参数既能够是绝对路径名,也能够是相对路径名。一般会用到点.
或点点..
的形式。例如,下面的命令将指定文件复制到当前目录下:spa
cp ../mary/homework/assign .
全部目标文件指定的目录必须是己经存在的,cp命令不能建立目录。若是没有文件复制的权限,则系统会显示出错信息。.net
将文件file复制到目录/usr/men/tmp
下,并更名为file1code
cp file /usr/men/tmp/file1
将目录/usr/men
下的全部文件及其子目录复制到目录/usr/zh
中blog
cp -r /usr/men /usr/zh
交互式地将目录/usr/men
中的以m打头的全部.c文件复制到目录/usr/zh
中递归
cp -i /usr/men m*.c /usr/zh
咱们在Linux下使用cp命令复制文件时候,有时候会须要覆盖一些同名文件,覆盖文件的时候都会有提示:须要不停的按Y来肯定执行覆盖。文件数量很少还好,可是要是几百个估计按Y都要吐血了,因而折腾来半天总结了一个方法:get
cp aaa/* /bbb
复制目录aaa下全部到/bbb目录下,这时若是/bbb目录下有和aaa同名的文件,须要按Y来确认而且会略过aaa目录下的子目录。
cp -r aaa/* /bbb
此次依然须要按Y来确认操做,可是没有忽略子目录。
cp -r -a aaa/* /bbb
依然须要按Y来确认操做,而且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb
成功,没有提示按Y、传递了目录属性、没有略过目录。