每天一个 Linux 命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
📝 语法
cp [选项] 源文件 目标文件
php
16 Bytes
© 菜鸟-创作你的创作
源文件:需要复制的文件或目录。
目标文件:复制到的位置,通常可以是一个文件或目录。
🚀 常见用法
复制单个文件:cp file1.txt file2.txt 这个命令会将 file1.txt 复制到 file2.txt,如果 file2.txt 已存在,它将被覆盖。
复制多个文件到目录:cp file1.txt file2.txt /path/to/destination/ 将 file1.txt 和 file2.txt 复制到指定的目录 /path/to/destination/。
递归复制目录:cp -r dir1/ dir2/ 选项 -r(或 --recursive)允许递归复制目录及其内容。如果你希望复制整个目录,必须使用这个选项。
交互式复制:cp -i file1.txt file2.txt 选项 -i(或 --interactive)会在目标文件存在时,提示用户是否覆盖文件。例如,如果 file2.txt 已存在,会询问是否覆盖。
保留文件属性:cp -p file1.txt file2.txt 选项 -p(或 --preserve)可以在复制文件时保留文件的原始权限、时间戳等属性。
显示复制进度:cp -v file1.txt file2.txt 选项 -v(或 --verbose)使 cp 命令显示详细信息,输出正在复制的文件的名称。
复制并更改文件名:cp file1.txt newfile.txt 这个命令会将 file1.txt 复制到 newfile.txt,如果目标文件名不一样,它会自动为目标文件生成新名字。
🛠️ 常用选项
-r 或 --recursive:递归复制目录及其内容。
-i 或 --interactive:交互式复制,文件已存在时提示是否覆盖。
-v 或 --verbose:显示详细的复制过程。
-p 或 --preserve:保留源文件的属性(如权限、时间戳等)。
-u 或 --update:只复制源文件比目标文件更新的文件。
-a 或 --archive:复制文件时,尽可能保留文件的所有属性,包括符号链接。
📚 示例
复制整个目录(包括子目录和文件):cp -r /source_directory /destination_directory
递归复制并保留文件属性:cp -rp /source_directory /destination_directory
交互式复制文件,防止覆盖:cp -i file1.txt file2.txt
查看复制过程:cp -v file1.txt file2.txt
🚨 注意事项
使用 cp 时,如果目标文件已经存在并且没有 -i 或 -n 等选项,它将自动覆盖目标文件。如果不小心覆盖了文件,可以尝试使用 -i 选项以避免不必要的数据丢失。
如果需要复制大量文件或者很大的目录,使用 -v 和 -r 可以帮助你查看进度,避免遗漏。
总结
cp 命令是 Linux 系统中最常用的文件操作命令之一,它允许用户快速地复制文件和目录。根据具体需求,可以配合不同的选项来实现灵活的文件复制操作。
https://www.52runoob.com/archives/4108