Linux cp 命令详解

语法

cp [options] source dest
cp [选项] 源文件 目标文件

其中,source(源文件)表示需要复制的文件或目录的路径,dest(目标文件)表示复制后的文件或目录的路径。

cp [options] source... directory
cp [选项] 源文件... 目录

此格式用于将多个源文件复制到目标目录。

选项说明

  1. -a: 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 -dR --preserve=all 参数组合。

    • 示例:将 source_directory 复制到 dest_directory,保留所有属性。

      cp -a source_directory dest_directory
  2. -d: 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。

    • 示例:将 source_link 复制到 dest_link,保留符号链接。

      cp -d source_link dest_link
  3. -r 或 --recursive: 用于复制目录及其所有子目录及文件。如果要复制目录,必须使用该选项。

    • 示例:将 source_directory 及其内容复制到 dest_directory

      cp -r source_directory dest_directory
  4. -i 或 --interactive: 在复制前提示确认,如果目标文件已存在,则会询问是否覆盖。回答 y 时目标文件将被覆盖。

    • 示例:交互式复制 file.txtdest_directory,如有同名文件则提示确认。

      cp -i file.txt dest_directory/
  5. -u 或 --update: 仅复制源文件中更新或时间较新的文件。

    • 示例:更新 source_filedest_directory 中,只有当源文件较新时才复制。

      cp -u source_file dest_directory/
  6. -v 或 --verbose: 显示详细的复制过程。

    • 示例:详细显示复制 source_filedest_directory 的过程。

      cp -v source_file dest_directory/
  7. -p 或 --preserve: 保留源文件的权限、所有者和时间戳等信息。

    • 示例:保留权限复制 source_filedest_directory

      cp -p source_file dest_directory/
  8. -f 或 --force: 强制复制,即使目标文件已存在,也不会提示。

    • 示例:强制复制 source_filedest_directory

      cp -f source_file dest_directory/
  9. -l: 不复制文件,只是生成链接文件。

    • 示例:在 dest_directory 中创建 source_file 的硬链接。

      cp -l source_file dest_directory/

实例

  1. 将文件 file.txt 复制到目录 /path/to/destination/

    cp file.txt /path/to/destination/
  2. 将当前目录 test/ 下的所有文件复制到新目录 newtest

    cp -r test/ newtest
  3. 交互式复制文件 file.txt/path/to/destination/,如果目标文件已存在则进行确认

    cp -i file.txt /path/to/destination/
  4. 保留源文件的属性并复制目录 source_directorydest_directory

    cp -a source_directory dest_directory
  5. 仅复制比目标文件更新的源文件 source_filedest_directory

    cp -u source_file dest_directory/
  6. 显示详细的复制过程,将 source_file 复制到 dest_directory

    cp -v source_file dest_directory/

以上只是 cp 命令的一些常见用法。你可以通过运行 man cp 命令查看更多选项和用法。

本文由mdnice多平台发布


逼格高的汤圆
7 声望2 粉丝