cp 命令在 Linux 系统中用于复制文件或目录。它是一个非常有用的命令,允许用户将文件从一个位置复制到另一个位置,或者将多个文件复制到一个目录中。

基本语法

cp 命令的基本语法如下:

cp [选项] 源文件 目标文件
cp [选项] 源文件... 目标目录
  • 源文件:指定要复制的文件或目录。
  • 目标文件:指定复制后的文件名或目录。如果目标是一个目录,那么源文件将被复制到这个目录中。

常用选项

  • -r--recursive:递归复制,用于复制目录及其所有子目录和文件。
  • -i--interactive:交互式复制,在覆盖文件之前提示用户确认。
  • -v--verbose:详细模式,显示复制过程中的信息。
  • -p--preserve:保留源文件的属性,如修改时间、访问时间、所有者和权限。
  • -u--update:仅当源文件比目标文件新,或者目标文件不存在时,才复制文件。

示例

  1. 复制单个文件
cp file.txt newfile.txt

这将把 file.txt 复制到当前目录,并重命名为 newfile.txt

  1. 复制多个文件
cp file1.txt file2.txt /path/to/directory

这将把 file1.txtfile2.txt 复制到指定的目录中。

  1. 递归复制目录
cp -r directory1 directory2

这将递归地复制 directory1directory2,包括所有子目录和文件。

  1. 交互式复制
cp -i file.txt newfile.txt

在覆盖 newfile.txt 之前,系统会提示用户确认。

  1. 保留文件属性
cp -p file.txt newfile.txt

复制文件时,保留原始文件的修改时间、访问时间和权限等属性。

  1. 仅更新已更改的文件
cp -u file.txt newfile.txt

如果 newfile.txt 已经存在,并且 file.txt 是最新的,那么 newfile.txt 将被更新。

注意事项

  • 使用 cp 命令时,如果目标文件已存在,且没有使用 -i 选项,那么目标文件将被覆盖,而不会有任何提示。
  • 使用 -r 选项时,需要确保目标目录存在,否则命令会失败。
  • cp 命令不会复制文件的硬链接,而是创建一个新的文件副本。

cp 命令是 Linux 系统中进行文件和目录复制的基本工具,通过使用不同的选项,用户可以灵活地控制复制过程。