当前位置:首页 > 技术 > 正文内容

Linux 文件复制命令详解:cp 实用指南

访客 技术 2026年6月8日 1

命令简介

cp 命令用于在 Linux 系统中复制文件或目录。该命令能够将一个或多个源文件或目录复制到指定的目标位置。当复制单个文件时,可以将其复制为具有特定名称的新文件或复制到已存在的目录中。cp 命令还支持同时复制多个文件,在此情况下,目标参数必须是一个已存在的目录,否则操作将失败。

值得注意的是,cp 命令还具有重命名文件的功能。

语法格式

cp [选项] [源文件或目录] [目标文件或目录]
cp [option] source destination
cp [option] source directory

注意:默认情况下,cp 命令无法直接复制目录,需要与 -R 选项配合使用。

选项说明

-a此参数的效果等同于同时指定 "-dpR" 参数
-d当复制符号链接时,将目标文件或目录也创建为符号链接,并指向源文件或链接的原始文件或目录
-f强制复制文件或目录,无论目标文件或目录是否已存在
-i覆盖现有文件前先询问用户确认
-l为源文件创建硬链接,而非复制文件
-p保留源文件或目录的属性
-R/r递归处理,将指定目录下的所有文件与子目录一并处理
-s为源文件创建符号链接,而非复制文件
-u仅当源文件的修改时间较目标文件更新,或对应的目标文件不存在时才复制文件
-S备份文件时,用指定的后缀 "SUFFIX" 替代文件的默认后缀
-b覆盖已存在的文件目标前,先将目标文件备份
-v详细显示命令执行的操作过程

应用实例

复制文件示例

# 复制文件并重命名
cp /data/source/file.txt /data/destination/renamed.txt

# 复制文件到目录
cp /data/source/file.txt /data/destination/

# 复制多个文件到目录
cp /data/source/file1.txt /data/source/file2.txt /data/destination/

# 使用交互模式复制文件
cp -i /data/source/file.txt /data/destination/existing_file.txt

# 保留属性复制文件
cp -p /data/source/file.txt /data/destination/

# 创建硬链接而非复制
cp -l /data/source/file.txt /data/destination/hardlink.txt

# 创建符号链接而非复制
cp -s /data/source/file.txt /data/destination/symlink.txt

目录复制示例

# 递归复制目录
cp -r /data/source/directory /data/destination/

# 保留所有属性复制目录
cp -a /data/source/directory /data/destination/

# 强制复制目录(覆盖已存在文件)
cp -rf /data/source/directory /data/destination/

# 仅更新已修改的文件
cp -u /data/source/directory /data/destination/

# 复制目录并显示详细过程
cp -rv /data/source/directory /data/destination/

批量复制文件示例

# 复制所有 .txt 文件
cp /data/source/*.txt /data/destination/

# 复制所有以字母 a 开头的文件
cp /data/source/a* /data/destination/

# 复制多个特定文件
cp /data/source/{file1.txt,file2.txt,file3.txt} /data/destination/

cp 命令行为规则

  • 当源是文件,目标也是文件时,将覆盖目标文件
  • 当源是文件,目标文件不存在时,将创建新文件
  • 当源是文件,目标是目录时,将文件复制到该目录下
  • 当源是多个文件,目标是单个文件时,复制操作失败
  • 当源是多个文件,目标是目录时,将所有文件复制到该目录下
  • 当源是多个文件,目标目录不存在时,复制操作失败
  • 当源是目录,目标是文件且存在时,复制操作失败
  • 当源是目录,目标是目录不存在时,将创建新目录
  • 当源是目录,目标是目录且存在时,将源目录复制为目标目录的子目录,保持原名
标签: Linuxcp命令

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。