linux中cp命令的功能是将一个给定的文件或目录复制到另一个文件或目录。如果同时指定了两个以上的文件或目录,并且最终目标是一个现有的目录,该命令会将之前指定的所有文件或目录复制到该目录。
参数cp [OPTION]
-a此选项通常在复制目录时使用。它保留链接,文件属性,递归复制目录,等于dpR选项的组合。
(资料图)
-p此时,cp会将源文件的内容及其修改时间和访问权限复制到新文件中。
-我没有复制,只是链接文件。
-d复制时保留链接。如果源文件是链接文件,则复制链接文件属性,而不是文件本身;
-f删除现有的目标文件而不提示。Force表示强制,如果有重复或其他问题,不会询问用户,而是强制复制;
-i和F选项是相反的,在覆盖目标文件之前会提示您进行确认。当你回答Y时,目标文件将被覆盖,这是一个交互式副本。
-l创建一个硬链接文件,而不是复制文件本身;
-p此时,cp会将源文件的内容及其修改时间和访问权限复制到新文件中。将它与文件的属性一起复制,而不是使用默认属性;
-r递归连续复制,用于目录的复制行为。如果给定的源文件是一个目录文件,那么cp将递归地复制该目录下的所有子目录和文件。目标文件必须是目录名。
-s复制成符号链接文件(symbol link),即“快捷方式”文件;
-u仅当目标比源旧时才更新目标!
例子cp a.txt testlinux/b.txt //如果b.txt是已存在文件,a.txt将源内容覆盖至目标文件中;如果b.txt不存在,则会复制创建b.txt并用a.txt覆盖cp a.txt testlinux/ //如果testlinux为目录,则会复制a.txt到testlinux中(window拷贝文件一样)cp -r /usr/men /usr/zh //将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中cp -i /usr/men m*.c /usr/zh //将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中cp -u ~/.bashrc /tmp/bashrc //若 ~/.bashrc 比 /tmp/bashrc 新才复制过来;这个 -u 的特性,是在目标档案与来源档案有差异时,才会复制的。cp bashrc_slink bashrc_slink_2 //bashrc_slink 复制成为 bashrc_slink_2;如果没有加上任何参数时,复制的是源文件,而非连结文件的属性,若要复制连结文件的属性,就得要使用 -d 或者 -a 的参数了!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、传递了目录属性、没有略过目录。