Linux 中的 cp 命令(复制文件)
在 Linux 和 Unix 系统上工作时,复制文件和目录是您每天执行的最常见任务之一。
cp
是一个命令行实用程序,用于在 Unix 和 Linux 系统上复制文件和目录。
在本文中,我们将解释如何使用cp
命令。
如何使用cp
命令
cp
命令的一般语法如下:
cp [OPTIONS] SOURCE... DESTINATION
SOURCE
可以包含一个或多个文件或目录作为参数,DESTINATION
参数可以是单个文件或目录。
- 当
SOURCE
和DESTINATION
参数都是文件时,cp
命令将第一个文件复制到第二个文件。如果该文件不存在,该命令将创建它。 - 当
SOURCE
有多个文件或目录作为参数时,DESTINATION
参数必须是一个目录。在这种情况下,SOURCE
文件和目录将移动到DESTINATION
目录。 - 当
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
复制多个文件时,目标必须是目录。
结论
使用cp
命令复制文件和目录是一项简单的任务。有关可用cp
选项的更多信息,请在终端中输入man cp
。
要通过网络复制文件,请使用 rsync
和 scp
实用程序。
如果您有任何问题或反馈,请随时发表评论。