cp命令是Linux和Unix-like系统中用于复制文件或目录的核心命令,其名称源于"copy"的缩写。

命令基本语法为:cp [选项] 源文件 目标文件 或 cp [选项] 源文件... 目标目录。
常用选项详解:
-i (interactive):在覆盖已存在的目标文件之前给出提示,要求用户确认。
-r 或 -R (recursive):递归复制目录及其所有子目录和文件,复制目录时必须使用此选项。
-v (verbose):显示详细的复制过程信息。
-u (update):仅当源文件比目标文件新,或目标文件不存在时,才执行复制操作(增量备份常用)。
-p (preserve):保留源文件的原始属性,包括所有者、组、权限和时间戳。
-a (archive):等同于 -dR --preserve=all,是实现归档复制的常用选项,能保留所有文件属性并递归复制。
-f (force):强制复制,即使目标文件已存在也直接覆盖(通常会被默认别名覆盖,需与`\cp`结合使用)。
-t (target-directory):指定目标目录,适用于复制多个源文件时,将目标目录前置,例如:cp -t 目标目录 源文件1 源文件2。
基础用法示例:
1. 复制文件:cp file1.txt file2.txt 将当前目录的file1.txt复制为file2.txt。
2. 复制到目录:cp file1.txt /path/to/directory/ 将文件复制到指定目录下,保持原名。
3. 复制多个文件:cp file1.txt file2.txt /backup/ 将多个文件复制到`/backup`目录。
4. 复制目录:必须使用-r选项,如 cp -r sourcedir/ destdir/。
5. 保留属性复制:cp -p important.conf /backup/ 复制时保留所有原始属性。
6. 交互式安全复制:cp -i *.log /backup/ 在覆盖任何现有文件前进行确认。
高级技巧与注意事项:
1. 在复制大量文件或需要保留完整属性的场景下,优先使用 -a 选项。
2. 使用 -u 选项可以实现高效的增量同步。
3. 默认情况下,cp命令会覆盖已存在的目标文件而不提示。为防误操作,许多系统通过别名将 cp 默认设置为 cp -i。若要使用原始无提示行为,可使用命令的绝对路径(如 /bin/cp)或在命令前加反斜杠(如 \cp file1 file2)。
4. 复制软链接时,默认行为是复制链接所指向的原始文件(跟随链接)。若想复制链接本身,需结合 -d 或 -a 选项使用。
5. 通配符支持:可以使用 *、? 等通配符来匹配多个源文件。

查看详情

查看详情