在Linux中,cp代表“复制”,用于复制文件和目录,使其成为文件管理的绝对必要条件。cp 命令可以被所有类型的用户使用,这要归功于其简单的语法:
cp <options> <source_file> <destination_file>
在 Linux 中与 cp 命令配对的一些常见选项是:
选项 | 描述 |
---|---|
-i | 在执行复制操作之前提示用户 |
-b | 在同一文件夹中使用不同名称创建destination_file的备份 |
-f | 用于在没有写入权限时强制创建源文件的副本 |
-r | 递归复制目录及其内容 |
-l | 创建硬链接而不是复制文件 |
-s | 创建软链接而不是复制文件 |
-u | 仅当源比目标新时复制文件 |
-v | 显示有关当前正在执行的操作的信息 |
Linux 中 cp 命令的最佳示例
现在您已经了解了 cp 命令的语法,让我们看一些如何使用此命令在 Linux 中复制文件和目录的示例。
1. 将单个文件复制到目标
这是 cp 命令最常见的用例,即制作单个文件的副本。使用 cp 命令创建单个文件副本的语法如下:
cp <options> <source_file> <destination_directory>
例如,要将文件“test.txt”复制到“destination_directory/”,请使用cp命令作为:
cp -v test.txt dest_directory/
2.将多个文件复制到目标
就像您可以复制单个文件一样,您甚至可以使用 cp 命令将多个文件复制到目标目录:
cp <options> <file_1> <file_2> <file_3> <destination_directory>
例如,要将文件 file1.txt、file2.txt、file3.txt复制到“dest_directory”目录:
cp file1.txt file2.txt file3.txt dest_directory/
3. 将单个目录复制到目标目录
使用 -r 标志,可以使用 cp 命令将整个目录复制到新目标:
cp <options> <source_directory> <destination_directory>
例如,要复制“source_dir”目录及其内容:
cp -v -r source_dir/ dest_directory
4. 将多个目录复制到目标目录
就像复制多个文件一样,复制多个目录的方式大致相同。复制多个目录的语法:
cp -r <option> <directory1> <directory2> <directory3> <destination_directory>
例如:
cp -r -v dir1/ dir2/ dir3/ dest_directory/
5. 保留复制文件的文件权限
通常,当您使用 cp 命令复制文件时,复制的文件将具有根据为每个创建的新文件设置的默认权限的文件权限。要保留原始文件的权限,请使用 -p 标志:
cp <options> -p <source_file> <destination_file>
例如,要保留“test.txt”的权限,请使用 cp 命令作为:
cp -p -v test.txt file.txt
6.避免覆盖目标文件
默认情况下,cp 命令会覆盖目标中具有相同名称的任何预先存在的文件。要避免覆盖文件名,请使用 -n:
cp <options> -n <source_file> <destination_file>
例如,要避免在复制时覆盖文件“test.txt”:
cp -v -n test.txt file.txt
7. 强制复制源文件
有时源文件没有创建副本的写入权限。在这种情况下,可以使用 -f 标志强制创建源文件的副本:
cp <option> -f <source_file> <destination_file>
例如:
cp -f -v file1.txt file2.txt
8. 创建链接而不是复制文件
有时,您可能需要创建源文件的硬链接或符号链接,而不是实际复制文件。要创建硬链接,请使用 -l 标志,要创建符号链接,请使用 -s 标志:
cp <options> -l <source_file> <destination_file>
或
cp <options> -s <source_file> <destination_file>
例如,要为文件“test.txt”创建符号链接:
cp -v -s test.txt test1.txt