cp
命令在 Linux 系统中用于复制文件或目录。它是非常基础且常用的命令之一,允许用户将文件从一个位置复制到另一个位置,或者将目录及其内容复制到另一个位置。
语法
|---|-----------------------------|
| | cp [选项]... [-T] 源文件 目标文件
|
| | cp [选项]... 源文件... 目录
|
| | cp [选项]... -t 目录 源文件...
|
常用选项
-i
:在覆盖目标文件之前提示用户确认。-r
,-R
,--recursive
:递归复制目录及其内容。-a
,--archive
:相当于-dR --preserve=all
,用于在复制时尽可能保留文件的属性(如链接、文件权限、所有者、时间戳等)。-p
,--preserve[=属性列表]
:保留文件的某些属性,如修改时间、访问时间、文件模式、文件所有权和组所有权。-v
,--verbose
:显示详细的操作信息。-f
,--force
:如果目标文件已存在,并且无法打开以进行写入,则将其删除并尝试再次复制。-u
,--update
:仅当源文件比目标文件新,或者目标文件不存在时,才复制文件。-l
,--link
:对源文件创建硬链接,而非复制文件。-s
,--symbolic-link
:对源文件创建符号链接,而非复制文件。
示例
-
复制文件:
cp source.txt destination.txt
这会将
source.txt
复制到当前目录下,并命名为destination.txt
。 -
复制文件到另一个目录:
cp source.txt /path/to/destination/
注意,如果目标是一个目录,则
cp
命令会将文件复制到该目录中,并保持原文件名。 -
递归复制目录:
cp -r source_directory/ destination_directory/
使用
-r
或--recursive
选项递归地复制目录及其所有内容。 -
保留文件属性复制:
cp -a source_directory/ destination_directory/
使用
-a
或--archive
选项在复制时尽可能保留文件的属性。 -
在覆盖前提示:
cp -i source.txt destination.txt
如果
destination.txt
已存在,cp
命令会提示用户是否覆盖。
注意
- 使用
cp
命令时,请确保目标路径正确,以避免意外覆盖重要文件。 - 对于重要数据,建议在执行复制操作之前进行备份。
- 在处理大量文件或大型目录时,可能需要一些时间来完成复制过程。