linux的cp命令详解

linux系统下cp命令是什么呢?下面是cp命令的具体介绍:

1、语法:

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

这两个语法的效果是一样的,都是把 SOURCE 代表的文件复制到 DIRECTORY 目录中。

2、使用cp命令将文件复制到目录:

首先来看下如何把文件复制到目录中,使用上面的两种语法

cp file1 file2 file3 dir1

cp -t dir1 file1 file2 file3

注意,目录 dir1 必须存在,否则会发生文件复制重命名。

3、使用cp命令将目录复制到目录:

有时候,我们想把整个目录复制到另外一个目录下,这个时候,我们需要加上 -r 或 -R 或 --recursive 选项

cp -r dir1/ dir2/

注意,目录 dir2 必须存在,否则会发生目录复制重命令。

4、使用cp命令将目录项复制到目录:

cp -r dir1 dir2 是把整个 dir1 目录复制到目录 dir2 下,但是有时候我们只想把 dir1 目录下的内容复制到 dir2 目录下,使用通配符来完成这个任务

cp dir1/* dir2

如果 dir1 目录有 hello.txt 以及 world.txt 两个文件,那么 dir1/* 会被 shell 展开为 dir1/hello.txt 以及 dir1/world.txt,那么上面的命令的展开形式如下

cp dir1/hello.txt dir2/world.txt dir2

这个形式就是文件复制到目录的操作。

注意,目录 dir2 必须存在,否则会报错。

5、使用cp命令将文件复制重命名:

有时候,我们想复制一个文件,但是同时又想把副本(复制后的文件)进行重命名,cp 命令可以做到,只要重命名的名子不存在即可

cp file1 dir1/renamed_file1

这个命名会把当前目录下的 file1 复制到 dir1 目录下,并且重命名为 renamed_file1。

注意,只有在 renamed_file1 不存在的情况下,才会发生文件复制重命名的操作。如果 renamed_file1 存在,那么将会用 file1 的内容覆盖 renamed_file1 的内容。

6、使用cp命令将目录复制重命名:

目录复制重命名与文件复制重命名类似,只是复制目录需要加上选项 -r。

cp -r dir1/ dir2/renamed_dir1

注意,如果想目录复制重命名,那么 renamed_dir1 目录必须不存在。如果存在,那么将会发生把一个目录复制到另外一个目录下的操作。

7、使用cp命令将文件覆盖:

在前面的部分中提到一个问题,文件复制可以导致覆盖操作,例如

cp file1 file2 dir1

如果 dir1 目录下存在 file1 文件,那么默认将会发生覆盖,但是不会给我们提示。如果这不是你想要的,那么可以使用下面几个选项

使用 -n 选项,不会发生覆盖操作。

使用 -i 选项,可以提示操作者是否执行覆盖操作。

使用 -b 选项,在覆盖前进行备份,备份文件名是原始文件名加上一个波浪线。

使用 -u 选项,表示只有文件比较新的时候,才发生覆盖。

8、使用cp命令将备份文件:

通过--suffix 重新定义备份文件名后缀。

cp --suffix=.bak file1 dir1

注意,如果指定了 --suffix 选项,那么已经包含了 -b 的意思,因此不需要再指定 -b 选项。

如果 dir1 目录已经存在 file1 文件,那么会生成一个备份文件 file1.bak,然后再发生文件复制。

其实 cp 命令有几种内置的生成备份文件的方式,通过 --backup 选项指定,有如下几个值

simple/never: 备份后缀名为波浪符(~),这是默认方式。

numbered/t : 备份后缀为数字,例如 ~1~。

existing/nil : 如果已经存在数字备份的文件,那么就使用数字后缀,否则使用波浪符后缀。

9、使用cp命令将文件的自我备份:

$ cp -b file1 file1

cp: 'file1' and 'file1' are the same file

这个命令表示在当前目录下,把 file1 复制为 file1,并且 -b 选项表示生成备份文件。但是这个命令无法执行,可以通过 -f 选项强制执行

$ cp -vfb hello.c hello.c

'hello.c' -> 'hello.c~'

以上就是小编今天的分享了,希望可以帮助到大家。

标签:cp命令 linux

免责声明:本内容来自橡树街平台创作者或收集于互联网公开资源,不代表橡树街网的观点和立场。如有侵权内容,请联系我们删除。联系邮箱:ihuangque@qq.com
相关推荐
linux设置环境变量
2022-08-05
linux设置环境变量
linux查看java安装路径
2022-08-05
linux查看java安装路径
linux系统能干嘛
2022-08-05
linux系统能干嘛
linux中sleep命令
2022-08-05
linux中sleep命令
linux 批量重命名文件
2022-08-05
linux 批量重命名文件
linux wc命令详解
2022-08-05
linux wc命令详解
linux搜索命令
2022-08-05
linux搜索命令
linux复制文件夹到另一个文件夹
2022-08-05
linux复制文件夹到另一个文件夹
linux重启网络服务命令
2022-08-05
linux重启网络服务命令
linux bye命令详解
2022-08-05
linux bye命令详解
手机老是弹出广告怎么解决
2022-08-05
手机老是弹出广告怎么解决
小爱同学怎么判断我喜欢的人喜不喜欢我
2022-08-05
小爱同学怎么判断我喜欢的人喜不喜欢我
安卓手机如何打开.kmz文件
2022-08-05
安卓手机如何打开.kmz文件
苹果手机文件管理在哪里
2022-08-05
苹果手机文件管理在哪里
安卓手机如何打开.sav文件
2022-08-05
安卓手机如何打开.sav文件
excel怎么批量向下复制表格
2022-08-05
excel怎么批量向下复制表格
微信名片上怎么显示手机号
2022-08-05
微信名片上怎么显示手机号
苹果呼叫转移保存不了
2022-08-05
苹果呼叫转移保存不了
安卓微信深色模式如何设置
2022-08-05
安卓微信深色模式如何设置
华为手机开机密码怎么重新设置
2022-08-05
华为手机开机密码怎么重新设置
qq收藏的照片删了怎么恢复
2022-08-05
qq收藏的照片删了怎么恢复
怎么给u盘加密
2022-08-05
怎么给u盘加密
华为手机锁定设备后怎么解除
2022-08-05
华为手机锁定设备后怎么解除
快手怎么不让一个人看我作品
2022-08-05
快手怎么不让一个人看我作品
win7锁屏壁纸更改方法
2022-08-05
win7锁屏壁纸更改方法