Linux cp命令:复制文件或目录

本文详细介绍了Linux中的`cp`命令,包括如何复制文件、避免覆盖、将文件复制到现有目录,以及如何查阅命令文档。通过实例展示了如何使用`-i`选项确保不覆盖已有文件,以及如何使用`-R`选项递归复制目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

描述

使用示例

复制文件

避免覆盖

将文件复制到现有目录中

查阅cp文档

递归复制目录


 

描述

cp命令用来完成复制的任务。它可以将系统中的文件或目录从一个位置复制到另一个位置。

 

使用示例

复制文件

在最基本的用法里,cp命令需要两个参数,源文件和目标文件:

cp <source_file> <destination_file>

此时cp命令将源文件(source_file)复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。

例如,将目录中的rsa.conf复制到当前目录下,新的文件名叫做rsa_clone.ini:

$ ll
total 8
drwxr-xr-x   3 root  staff    96  2 24 18:13 ./
drwxr-xr-x+ 86 root  staff  2752  3  8 18:42 ../
-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf

$ cp rsa.conf rsa_clone.ini

$ ll
total 16
drwxr-xr-x   4 root  staff   128  3  8 18:42 ./
drwxr-xr-x+ 86 root  staff  2752  3  8 18:42 ../
-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf
-rw-r--r--   1 root  staff    48  3  8 18:42 rsa_clone.ini

 

避免覆盖

如果复制后的新文件名称在目标目录中已存在,cp命令会覆盖掉原来的文件:

$ ll
total 16
drwxr-xr-x   4 root  staff   128  3  8 18:42 ./
drwxr-xr-x+ 89 root  staff  2848  3 23 21:33 ../
-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf
-rw-r--r--   1 root  staff    48  3  8 18:42 rsa_clone.ini
$ cp rsa.conf rsa_clone.ini
$ ll
total 16
drwxr-xr-x   4 root  staff   128  3  8 18:42 ./
drwxr-xr-x+ 89 root  staff  2848  3 23 21:33 ../
-rw-r--r--   1 root  staff    48  2 24 18:13 rsa.conf
-rw-r--r--   1 root  staff    48  3 23 21:33 rsa_clone.ini

可以看到这种场景下cp命令不会报错,而是直接将原来的rsa_clone.ini文件覆盖掉了(最后修改时间发生了变化)。

加上-i选项可以强制shell询问是否需要覆盖已有文件。如果不回答y,文件复制过程中断:

$ cp -i rsa.conf rsa_clone.ini
overwrite rsa_clone.ini? (y/n [n]) n
not overwritten

 

总结:

使用如下的命令可以强制shell检查复制文件是否会造成覆盖已有文件的现象出现:

cp -i <source_file> <target_file>

 

将文件复制到现有目录中

使用如下的命令可以将一个文件复制到一个目录中:

cp <source_file> <source_path>

例如:

$ cp rsa.conf sub
$ ls -l sub/
total 8
-rw-r--r--  1 root  staff  48  3 23 21:57 rsa.conf

新文件就在sub目录中了,和源文件同名。

 

查阅cp文档

使用man cp查阅cp文档

man cp

 

递归复制目录

使用 cp -R <目录名> <新目录名> 可以递归地复制整个目录的内容。

cp -R <directory/> <new_directory/>

 

例如将目录d1复制,新复制后的目录名为d2

$ cp -R d1 d2

💡提示:在目录d2事先并不存在,它是被cp -R命令创建的。在新的目录d2中,所有文件都有了新的日期。d2目录现在已经成为了d1目录的完整副本。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值