Appearance
cp 命令:复制文件和目录
1. 命令简介
cp
命令是 "copy" 的缩写,用于复制文件和目录。它是 Unix 和类 Unix 系统中最基本和常用的命令之一。
2. 基本语法
Shell
cp [选项] 源文件 目标文件
cp [选项] 源文件... 目录
3. 常用选项
-r
或-R
:递归复制目录及其内容-i
:交互模式,覆盖前提示-f
:强制复制,不提示(即使目标文件存在)-v
:详细模式,显示复制过程-p
:保留源文件的模式、所有权和时间戳-u
:仅当源文件比目标文件新或目标文件不存在时才复制
4. 基础使用示例
复制单个文件:
Shellcp file.txt copy_of_file.txt
复制文件到另一个目录:
Shellcp file.txt /path/to/directory/
复制多个文件到目录:
Shellcp file1.txt file2.txt file3.txt /path/to/directory/
复制目录及其内容:
Shellcp -r source_directory destination_directory
5. 进阶使用技巧
保留文件属性:
Shellcp -p original.txt copy.txt
仅复制更新的文件:
Shellcp -u *.txt /path/to/backup/
复制并重命名:
Shellcp original.conf{,.bak}
这会创建 original.conf.bak
使用通配符复制多个文件:
Shellcp *.jpg /path/to/photos/
6. 实用示例
创建文件的硬链接而不是复制:
Shellcp -l file.txt link_to_file.txt
复制时排除某些文件:
Shellcp -r source_dir/* dest_dir/ --exclude=*.tmp
复制大文件时显示进度:
Shellcp big_file.iso /path/to/destination/ | pv
注意:这需要安装
pv
命令。
7. 注意事项
- 复制大量或大型文件时,考虑使用
rsync
命令,它更高效且支持断点续传。 - 在脚本中使用
cp
时,最好加上错误检查。 - 复制符号链接时,默认复制的是链接指向的文件,使用
-P
选项可以保留符号链接。
8. 相关命令
mv
:移动或重命名文件rsync
:高级文件复制工具,支持远程复制dd
:用于复制低级数据
9. 技巧与建议
在复制重要文件之前,可以先创建备份:
Shellcp important_file.txt{,.bak}
使用
--parents
选项可以在目标目录中创建源文件的目录结构:Shellcp --parents src/main/java/com/example/App.java dest/
在复制大量文件时,可以使用
tee
命令来记录日志:Shellcp -rv source_dir destination_dir | tee copy_log.txt
cp
命令是文件管理的基础工具之一。熟练使用它可以帮助你更有效地组织和备份文件。记住,虽然 cp
命令看似简单,但在处理大量数据或重要文件时,仍需谨慎操作。