cp
命令用于复制文件或目录。它可以在同一个文件系统中移动文件,也可以跨文件系统进行复制。使用 cp
命令可以非常方便地创建文件的副本。
常见选项
-i
或--interactive
:在覆盖目标文件之前提示确认。-v
或--verbose
:显示详细的处理过程。-p
或--preserve
:保留原始文件的属性,如修改时间、权限等。-r
或--recursive
:递归复制目录及其子目录中的所有内容。-f
或--force
:如果目标文件已存在,则强制覆盖。-u
或--update
:仅当源文件比目标文件新时才复制。-n
或--no-clobber
:不覆盖现有的文件。
基本用法
复制单个文件
cp 源文件 目标文件
例如,将文件 example.txt
复制到当前目录下并命名为 backup.txt
:
cp example.txt backup.txt
复制多个文件
cp 源文件1 源文件2 ... 目标目录
例如,将 file1.txt
和 file2.txt
复制到 /home/user/docs/
目录:
cp file1.txt file2.txt /home/user/docs/
复制目录
为了复制目录,需要使用 -r
选项:
cp -r 源目录 目标目录
例如,将目录 project
及其内容复制到 /home/user/backup/project
:
cp -r project /home/user/backup/
高级用法
使用通配符复制文件
可以使用通配符来指定一组文件进行复制:
cp 文件名* 目标目录
例如,将所有以 log
开头的文件复制到 /var/log/backup/
:
cp log* /var/log/backup/
交互式复制
为了避免意外覆盖文件,可以使用 -i
选项:
cp -i 源文件 目标文件
例如,在复制 data.txt
到 new_data.txt
时,如果 new_data.txt
已经存在,系统会提示是否覆盖:
cp -i data.txt new_data.txt
保留文件属性
使用 -p
选项可以保留文件的修改时间、访问时间以及权限信息:
cp -p 源文件 目标文件
例如,将 script.sh
文件复制为 backup_script.sh
并保留其属性:
cp -p script.sh backup_script.sh
更新文件
使用 -u
选项可以确保只有当源文件比目标文件更新时才会复制:
cp -u 源文件 目标文件
例如,将 config.conf
文件复制到 /etc/
目录下,但只有当 /etc/config.conf
已经存在且比 config.conf
更旧时才会更新:
cp -u config.conf /etc/
注意事项
- 在复制大量文件时,最好使用
-v
选项查看详细输出。 - 如果目标文件已经存在且不想被覆盖,可以使用
-n
选项。 - 当复制大文件或大量文件时,可能需要较长时间,请耐心等待。
通过上述介绍,您可以掌握 cp
命令的基本用法和一些高级功能。希望这些示例能帮助您更高效地管理文件和目录。