一、基本语法
cp命令是Linux系统中用于复制文件和目录的命令,具体语法格式如下:
cp [option] source_file destination_file
option为可选项,source_file为源文件路径,destination_file为目标文件路径。源文件可以是文件或目录,目标文件可以是文件或目录。如果目标文件为目录,则会在目标目录中创建与源文件同名的新文件或目录。
二、常用参数
1. -r/--recursive
用于递归地复制目录及其子目录下的所有文件。
cp -r source_dir destination_dir
2. -i/--interactive
交互式复制命令,每次在覆盖文件之前都会提示用户确认,用户需要输入y或n进行确认或取消。
cp -i source_file destination_file
3. -p/--preserve
保留源文件或目录的有关属性,如文件权限,所有者,时间戳等。如果目标文件为目录,则保留源文件或目录的属性。
cp -rp source_file destination_file
4. -v/--verbose
显示复制过程中的详细信息,包括每个文件的复制情况。
cp -v source_file destination_file
三、示例应用
1. 复制单个文件
将源文件source.txt复制到目标文件destination.txt。
cp source.txt destination.txt
2. 复制多个文件
将多个源文件复制到目标目录destination_dir中。
cp file1 file2 file3 destination_dir
3. 复制目录
将源目录source_dir及其所有子目录和文件复制到目标目录destination_dir中。
cp -r source_dir destination_dir
4. 复制文件并保留属性
将源文件source.txt复制到目标文件destination.txt,并保留文件属性。
cp -p source.txt destination.txt
5. 交互式复制文件
将源文件source.txt复制到目标文件destination.txt,如果目标文件已经存在,则会提示用户进行确认。
cp -i source.txt destination.txt
6. 显示复制过程
将源文件source.txt复制到目标文件destination.txt,并显示复制过程的详细信息。
cp -v source.txt destination.txt
四、注意事项
1. 目标文件已经存在时,如果不加-r或-i选项,会直接覆盖目标文件。
2. 源文件或目录路径中如果包含空格,需要使用双引号将其括起来。
3. 在复制目录时,如果目标目录不存在,则会自动创建目标目录。
4. 在使用-r选项进行递归复制目录结构时,复制过程中可能会遇到某些无法读取的文件或目录,此时会提示用户是否要跳过这些无法读取的文件或目录。
五、总结
cp命令是Linux系统中非常常用的文件/目录复制命令,具有丰富的选项和功能,能够满足各种复制场景的需求。