cp命令用来复制文件或目录,当复制多个文件时,目标文件参数必须为已经存在的目录,否则将出现错误。 cp命令默认不能复制目录,复制目录必须使用 -R 选项。cp命令具备了 ln命令的功能。
命令格式: cp [选项] [参数]
选项:
-R 或 -r 对目录进行复制操作。以递归的操作方式将制定目录及其子目录中的所有文件复制到指定的目标目录。
-a 保持源文件源有的结构和属性,与选项 -dpR 的功能相同。 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,并递归地拷贝目录。
-d 如果复制的源文件是符号链接,仅复制符号链接本身,而且保留符号链接所指向的目标文件或目录。 拷贝时保留链接。
-f 强制覆盖已经存在的目标文件,而不提示用户进行确认。为防止覆盖掉重要文件,通常不使用此项。
-i 在覆盖已存在的目标文件前提示用户进行确认。使用此选项可以防止覆盖掉重要文件。
-l 为源文件创建硬链接,与 ln 命令的功能相同。此选项可以节省硬盘空间,要求源文件和目的文件必须在同一分区或文件系统上,不作拷贝,只是链接文件。
-p 复制文件时保持源文件的所有者、权限信息以及时间属性。
-u 当目标文件不存在或源文件比目标文件新时才进行复制操作,否则,不进行复制。
-S 在备份文件时,用指定的后缀 SUFFIX 代替文件名的默认后缀。
-b 覆盖已存在的目标签将目标文件备份。
-v 详细显示命令执行的操作。
-s 不进行真正的复制操作,仅为源文件创建符号廉洁,与 ln -s 命令的功能相同。
实例:
cp a.doc /home/hk/cpdir/copy/b.doc 将文件 a.doc 复制到 /home/hk/cpdir/copy/ 文件夹下,并改名为 b.doc。
cp -r /home/hk/cpdir/ /home/hk/c 将目录 /home/hk/cpdir/递归地复制到 /home/hk/c文件夹下。
cp adf b.txt copy/ 将文件 adf b.txt 复制到 当前路径下的 copy 目录下。
cp -i /usr/men m*.c /usr/zh 交互式地将目录/usr/men中的以m打头的所有.c文件复制到目录/usr/zh中
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、传递了目录属性、没有略过目录。