Linux中的cp命令(复制文件)
在Linux和Unix系统上工作时,复制文件和目录是我们每天要执行的最常见的任务之一。
“ cp”是一个命令行实用程序,用于在Unix和Linux系统上复制文件和目录。
在本文中,我们将说明如何使用“ cp”命令。
如何使用'cp'命令
“ cp”命令的常规语法如下:
cp [OPTIONS] SOURCE... DESTINATION
'SOURCE'可以包含一个或者多个文件或者目录作为参数,'DESTINATION'参数可以是单个文件或者目录。
- 当“ SOURCE”和“ DESTINATION”两个参数都是文件时,“ cp”命令将第一个文件复制到第二个文件。如果文件不存在,则命令将创建它。
- 当“源”具有多个文件或者目录作为参数时,“目标”参数必须是一个目录。在这种情况下,“源”文件和目录将移至“目的地”目录。
- 当“ SOURCE”和“ DESTINATION”两个参数都是目录时,“ cp”命令将第一个目录复制到第二个目录。
要复制文件和目录,我们必须至少具有对源文件的读取权限和对目标目录的写入权限。
否则,将显示权限被拒绝错误。
使用cp命令复制文件
使用'cp'的最基本方案是将文件复制到当前工作目录中。
例如,要将名为“ file.txt”的文件复制到“ file_backup.txt”,请运行以下命令:
cp file file_backup
或者
cp file{,_backup}
要将文件复制到另一个目录,请指定目标目录的绝对或者相对路径。
如果仅将目录名称指定为目标,则复制的文件将具有与原始文件相同的名称。
在以下示例中,我们将文件“ file.txt”复制到“/backup”目录:
cp file.txt /backup
如果要使用其他名称复制文件,则需要指定所需的文件名。
以下命令会将文件复制为'new_file.txt'到指定目录。
cp file.txt /backup/new_file.txt
默认情况下,如果目标文件存在,它将被覆盖。
'-n'选项告诉'cp'不要覆盖现有文件。
要强制'cp'提示确认,请使用'-i'选项。
cp -i file.txt file_backup.txt
如果仅在文件比目标文件新的情况下才想复制文件,请使用“ -u”选项:
cp -u file.txt file_backup.txt
复制文件时,新文件归运行该命令的用户所有。
使用'-p'选项保留文件模式,所有权和时间戳:
cp -p file.txt file_backup.txt
另一个有用的选项是'-v',它告诉'cp'打印详细输出:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
使用cp命令复制目录
要复制目录,包括其所有文件和子目录,请使用'-R'或者'-r'选项。
在以下示例中,我们将目录“ Pictures”复制到“ Pictures_backup”:
cp -R Pictures Pictures_backup
上面的命令创建目标目录,并将所有文件和子目录从源递归复制到目标目录。
如果目标目录已经存在,则源目录本身及其所有内容都将复制到目标目录中。
要仅复制文件和子目录而不复制源目录,请使用“ -T”选项:
cp -RT Pictures Pictures_backup
仅复制目录内容而不复制目录本身的另一种方法是使用通配符('*')。
以下命令的缺点是它不会复制隐藏的文件和目录(以点'。
'开头的文件和目录):
cp -RT Pictures/* Pictures_backup/
复制文件时,我们在上一节中使用的所有选项也可以在复制目录时使用。
主要区别在于复制目录时。
我们始终需要使用“ -R”选项。
复制多个文件和目录
要一次复制多个文件和目录,请指定它们的名称,并使用目标目录作为最后一个参数:
cp file.txt dir file1.txt dir1
复制多个文件时,目标位置必须是目录。