在Linux和Unix系统上工作时,复制文件和目录是您每天最常见任务之一。cp
是用于在Unix和Linux系统上复制文件和目录的命令行程序。
在教程中,我们将解释如何使用cp
命令。cp
命令的基本语法与选项,复制文件与目录,备份文件文件与目录,递归复制子目录与文件,复制多个文件和目录。
cp
命令
cp
命令的语法如下:
cp [OPTIONS] SOURCE... DESTINATION
可以有一个或多个文件或目录作为SOURCE
源文件参数,DESTINATION
目标可以是文件或目录的作为参数。
SOURCE
和DESTINATION
参数都是文件时,cp
命令将第源文件复制到目标文件。如果文件不存在,命令将创建它。当SOURCE
由多个文件或目录作为参数时,DESTINATION
参数必须是目录。在这种情况下,SOURCE
文件和目录将移至DESTINATION
目录中。当SOURCE
和DESTINATION
参数都是目录时,cp
命令会将第一个目录复制到第二个目录。要复制文件和目录,您必须至少具有对源文件的读取权限和对目标目录的写入权限。否则,您将收到一个Permission denied权限拒绝的错误。
复制文件
使用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
不要覆盖现有文件。要有确认提示,请使用-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'
复制目录
要复制目录,包括其所有文件和子目录,请使用-R
或-r
选项。在以下示例中,我们将Pictures
目录备份为Pictures_backup
:
cp file file_backup
0
上面的命令将创建一个目标目录,并将所有文件和子目录从源递归复制到目标目录。如果目标目录已经存在,则源目录本身及其所有内容将被复制到目标目录。
要仅复制文件和子目录而不复制目标目录,请使用以下-T
选项:
cp file file_backup
1
仅复制目录内容而不复制目录本身的另一种方法是使用通配符(*
)。以下命令的缺点是它不会复制隐藏的文件和目录,以点.
开头的文件和目录:
cp file file_backup
2
我们在上一节中使用的所有选项也可以在复制目录时使用。主要区别在于复制目录时,您始终需要使用-R选项。
复制多个文件和目录
要一次复制多个文件和目录,请指定其名称,并使用目标目录作为最后一个参数:
cp file file_backup
3
多个文件时,目标参数必须是目录。
结论
使用该cp
命令复制文件和目录是一个简单的任务。有关所有可用cp
选项的信息,请man cp
在终端中输入。如果要通过网络复制文件,请检查rsync
和scp
命令。
还没有评论,来说两句吧...