`
youyu4
  • 浏览: 424815 次
社区版块
存档分类
最新评论

Linux命令学习(8):cp

 
阅读更多

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell脚本的执行方式有些不同。

 

------------------------------------------------------------------------------------------------------

 

 

1.命令格式:

用法:

   cp [选项]... [-T] 源 目的

      或:cp [选项]... 源... 目录

       或:cp [选项]... -t 目录 源...

2.命令功能:

将源文件复制至目标文件,或将多个源文件复制至目标目录。

3.命令参数:

-a, --archive    等于-dR --preserve=all

    --backup[=CONTROL    为每个已存在的目标文件创建备份

-b                类似--backup 但不接受参数

   --copy-contents        在递归处理是复制特殊文件内容

-d                等于--no-dereference --preserve=links

-f, --force        如果目标文件无法打开则将其移除并重试(当 -n 选项

                    存在时则不需再选此项)

-i, --interactive        覆盖前询问(使前面的 -n 选项失效)

-H                跟随源文件中的命令行符号链接

-l, --link            链接文件而不复制

-L, --dereference   总是跟随符号链接

-n, --no-clobber   不要覆盖已存在的文件(使前面的 -i 选项失效)

-P, --no-dereference   不跟随源文件中的符号链接

-p                等于--preserve=模式,所有权,时间戳

    --preserve[=属性列表   保持指定的属性(默认:模式,所有权,时间戳),如果

               可能保持附加属性:环境、链接、xattr 等

-R, -r, --recursive  复制目录及目录内的所有项目

4.命令实例:

 

------------------------------------------------------------------------------------

 

 

实例一:复制单个文件到目标目录,文件在目标文件中不存在

命令:

cp log.log test5

输出:

[root@localhost test]# cp log.log test5

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxr-xr-x 2 root root 4096 10-28 14:53 test5

[root@localhost test]# cd test5

[root@localhost test5]# ll

-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log

-rw-r--r-- 1 root root 0 10-28 14:53 log.log

说明:

在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。  

 

 

 

 

实例二:目标文件存在时,会询问是否覆盖

命令:

cp log.log test5

输出:

[root@localhost test]# cp log.log test5

cp:是否覆盖“test5/log.log”? n

[root@localhost test]# cp -a log.log test5

cp:是否覆盖“test5/log.log”? y

[root@localhost test]# cd test5/

[root@localhost test5]# ll

-rw-r--r-- 1 root root 0 10-28 14:46 log5-1.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-2.log

-rw-r--r-- 1 root root 0 10-28 14:46 log5-3.log

-rw-r--r-- 1 root root 0 10-28 14:48 log.log

说明:

目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。

 

 

 

 

实例三:复制整个目录

命令:

输出:

目标目录存在时:

[root@localhost test]# cp -a test3 test5 

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxr-xr-x 3 root root 4096 10-28 15:11 test5

[root@localhost test]# cd test5/

[root@localhost test5]# ll

-rw-r--r-- 1 root root    0 10-28 14:46 log5-1.log

-rw-r--r-- 1 root root    0 10-28 14:46 log5-2.log

-rw-r--r-- 1 root root    0 10-28 14:46 log5-3.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

目标目录不存在是:

[root@localhost test]# cp -a test3 test4

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxrwxrwx 2 root root 4096 10-28 14:47 test4

drwxr-xr-x 3 root root 4096 10-28 15:11 test5

[root@localhost test]#

说明:

注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。

 

 

 

实例四:复制的 log.log 建立一个连结档 log_link.log

命令:

cp -s log.log log_link.log

输出:

[root@localhost test]# cp -s log.log log_link.log

[root@localhost test]# ll

lrwxrwxrwx 1 root root    7 10-28 15:18 log_link.log -> log.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

drwxr-xr-x 6 root root 4096 10-27 01:58 scf

drwxrwxrwx 2 root root 4096 10-28 14:47 test3

drwxrwxrwx 2 root root 4096 10-28 14:47 test4

drwxr-xr-x 3 root root 4096 10-28 15:11 test5

 

说明:

那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!

分享到:
评论

相关推荐

    linux命令学习总结

    linux常用命令学习总结,包括tar、mkdir、pwd、yum、vim、cp、mv、rm、rmdir、cd、ls等等

    linux系统与数据库视频教程学习合集(软件测试必备知识)

    linux学习视频day01:11-cp命令.mp4 linux学习视频day01:12-my命令.mp4 linux学习视频day01:13-cat和重定向命令.mp4 linux学习视频day01:14-more命令.mp4 linux学习视频day01:15-管道.mp4 linux学习视频day01:16-回顾...

    8.linux命令集之cp命令

    Linux命令是对Linux系统进行管理的命令,是Linux系统正常运行的核心。每日更新一条命令供大家学习,内容详细,包含实操案例,适用于零基础人群。

    linux命令官方源码

    Linux命令GNU官方源码,是coreutils-common-8.24这个软件包的命令,包含cp、mv、chgrp、chown等大多数基本命令,对学习C语言的人会有很大帮助,可以看看大神都是怎么写代码的TnT

    自动动手写了linux下的cp命令

    在linux 下 自己动手写了cp 命令。请多多指教。一起学习。

    网络安全学习linux部分命令

    Linux命令格式 ​ 命令 [-选项] [参数] ​ ctrl+l清屏 1.2目录处理命令 1. ls----显示目录文件 ​ 组里每个成员都享有这个组的权限 ​ -d 查看目录属性 显示目录本身,而不显示目录下的数据 2. mkdir----...

    史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!

    Linux常用命令汇总Linux终端命令格式终端命令格式查阅命令帮助信息-help-man常用Linux命令的基本实用学习Linux终端命令的原因常用Linux命令的基本使用自动补全其它命令查找文件演练目标软链接演练目标硬链接简介...

    Linux常用命令超详细学习笔记.rar

    下面是一些常用的Linux命令及其简要介绍: ls:列出目录中的文件和子目录。 cd:切换当前工作目录。 pwd:显示当前工作目录的路径。 mkdir:创建新的目录。 rm:删除文件或目录。 cp:复制文件或目录。 mv:移动文件...

    Linux命令大全(完整版)

    这使得读者可以系统地学习和掌握Linux命令,为日后的工作和学习打下坚实的基础。 其次,这本书的讲解方式非常易于理解。每个命令都配以简洁明了的解释和生动的实例,让读者能够轻松理解命令的用法和注意事项。同时,...

    linux常用命令源码(ls,cp,chmod,df等一百多个命令)

    linux下大部分常用命令源码,偶正要开始学习-_- base64.c basename.c c99-to-c89.diff cat.c chcon.c chgrp.c chmod.c chown.c chown-core.c chown-core.h chroot.c cksum.c comm.c copy.c cp.c cp-hash.c csplit.c ...

    cmd操作命令和linux命令大全收集

    8. services.msc---本地服务设置 9. oobe/msoobe /a----检查XP是否激活 10. notepad--------打开记事本 11. cleanmgr-------垃圾整理 12. net start messenger----开始信使服务 13. compmgmt.msc---计算机管理 ...

    linux命令及vi操作

    每个命令都有其特定的功能和使用场景,对于初学者来说,理解和掌握这些命令是学习Linux操作系统的关键。本资源适用于所有初学者以及对Linux系统感兴趣的人。无论您是计算机专业的学生还是对Linux感兴趣的普通用户,...

    linux-tutorial:Linux教程,主要内容:Linux命令,Linux系统运维,软件运维,精选常用Shell脚本

    Linux命令 学习Linux的第一步:当然是从入手了。 help-关键词: help , whatis , info , which , whereis , man cd , ls , pwd , mkdir , rmdir , tree , touch , ln , rename , stat , file , ...

    Linux命令搜索工具linux-command.zip

    Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。   Linux命令分类 这里存放Linux 命令大全并不全,你可以通过linux-command来搜索,它是把 command 目录里面搜集的...

    Linux 的cp命令及示例详解

    最近学习linux命令,现在把cp命令整理出来,以便日后查询。 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有...

    常用 Linux 命令的基本使用.docx

    01. 学习 Linux 终端命令的原因 02. 常用 Linux 命令的基本使用 03. 自动补全 Linux 终端命令格式 01. 终端命令格式 02. 查阅命令帮助信息(知道) 2.1 --help 2.2 man 文件和目录常用命令 目标 01. 查看...

    linux学习笔记v1.0 - 基础命令指令.docx

    Linux学习笔记 Linux学习笔记 1 1.2 系统命令 1 1.2.1 命令tar 1 1.2.2 命令mv 2 1.2.3 命令cp 2 1.3 vim操作 2 1.2 系统命令 1.2.1 命令tar

    常用的Linux命令

    常用的Linux命令 练习并掌握常用的Linux操作命令,如ls、cat、ps、who、echo、cd、more、cp、rm、ps等; 学习使用Linux的在线求助系统,如man和help命令等

    python 零基础学习篇linux命令(一)10 cp和mv命令选项.mp4

    python 零基础学习篇

    linux命令c语言自己实现(大概40来个)

    自己学习《APUE》时写的linux下一些命令(大概40个左右)实现,仅当学习使用,这些命令包括cat cp echo head ls paste rmdir tail umask who chattr cut expand join mkdir pwd sed tee uniq chgrp date find last ...

Global site tag (gtag.js) - Google Analytics