视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
linux的cp命令详解
2021-11-08 15:41:21 责编:李赢赢
文档

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~'

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

下载本文
显示全文
专题