`

每天一个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命令,帮助你更好地理解和操作Linux系统。 1. **Ctrl+Alt+T**:这是快速打开终端的快捷键,方便进行各种命令行操作。 2. **Ctrl+Alt+F2/F7**:这两个快捷键分别用于切换到/返回图形...

    Linux命令基础8:cp命令和延伸

    在命令行环境中,`cp`命令通常会自动询问用户是否覆盖已存在的目标文件,而当在shell脚本中执行时,如果没有指定`-i`参数,则会直接覆盖,这是命令行与脚本执行模式的一个关键差异。 `cp`命令的基本格式有三种: 1....

    linux系统简单命令

    * fg 命令:用于将一个后台进程放到前台。 * bg 命令:用于将一个前台进程放到后台。 * job 命令:用于在后台运行一个进程。 * kill 命令:用于发送信号给一个进程。 五、系统信息命令 * ps 命令:用于查看进程...

    linux运维笔记:最常用的150个命令.docx

    Linux运维笔记是系统管理员和开发者不可或缺的一部分,这篇笔记总结了最常用的150个Linux命令,涵盖文件和目录操作、查看文件及内容处理、文件压缩及解压缩、信息显示、搜索文件、用户管理和基础网络操作等多个方面...

    操作系统接口:兼容Unix/Linux命令接口

    操作系统接口:兼容Unix/Linux命令接口。 为Windows操作系统建立一个兼容Unix命令的命令接口;实现命令包括ls,cat,cp,mv,md/mkdir,rd/rmdir,cd,sort,more,print,命令的内容与详细格式请查阅unix命令手册;可以字符...

    linux cp命令 源代码

    这个标题所指的“linux cp命令 源代码”应该是一个实现了Linux `cp`命令功能的个人版本,可能是为了学习、教学或优化目的。下面将详细讨论`cp`命令的基本用法、工作原理以及可能包含在源代码中的关键部分。 `cp`...

    linux命令分类总结

    4. cp命令:cp命令用于复制文件或目录。它可以将文件或目录从一个位置复制到另一个位置,并可以使用参数来设置复制的模式。 示例:cp file1 file2 5. mv命令:mv命令用于移动或重命名文件或目录。它可以将文件或...

    Linux常用命令.pdf

    **cp命令**:复制文件或目录,例如`cp file1 file2` 复制file1到file2,`cp -r folder1 folder2` 将folder1目录及其内容复制到folder2。 **mv命令**:移动或重命名文件或目录,例如`mv file1 file2` 将file1重命名...

    linux复制、删除、移动文件的命令:cp、rm、mv.docx

    mv 命令是 Linux 中用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中的命令。source 表示源文件或目录,target 表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容...

    Linux常用命令大全.pdf

    14. cp命令:用于在本地复制文件。 - cp 源文件名 目标文件名:复制文件到指定位置。 - cp -r 源目录名 目标目录名:复制目录及其内容到指定位置。 15. scp命令:用于远程复制文件。 - scp 源地址 目标地址:...

    8.linux命令集之cp命令

    【Linux cp命令详解】 在Linux操作系统中,`cp`命令是一个不可或缺的工具,它用于复制文件和目录。这个命令在日常的系统管理和文件操作中扮演着重要的角色,无论是对新手还是经验丰富的用户都非常实用。 ### 命令...

    linux 常用命令大全总结,良心总结

    3. cp命令:拷贝文件或目录,例如cp 文件名 目的文件夹 (-r表示递归拷贝,-i表示交互操作,-f表示强制) 4. mv命令:将目录或文件重命名或者移动,例如mv 文件名 目的文件夹 5. cat命令:显示文件内容,例如cat ...

    Linux常用命令及实用命令万字总结.doc

    * cp命令:用于复制文件。 * mv命令:用于移动或重命名文件。 3. 目录操作命令 * cd命令:用于切换当前目录。 * pwd命令:用于显示当前目录。 * mkdir命令:用于创建新目录。 4. 文件查询命令 * find命令:用于...

    Linux开发常用命令.doc

    文件操作命令是 Linux 中最基本的命令之一,下面都是文件操作命令: * rm 命令:用于删除文件或目录。 * cp 命令:用于复制文件或目录。 * mv 命令:用于移动或重命名文件或目录。 * diff 命令:用于比较两个文件或...

    Linux命令大全搜索工具

    该工具旨在提供一个便捷的命令搜索平台,帮助用户快速查找和使用 Linux 命令。 本工具提供了超过 100 个 Linux 命令的详细说明,涵盖了以下几个方面: 1. 文件操作命令:包括文件复制、移动、删除、压缩、解压缩等...

    Linux中cp和scp命令的使用方法.docx

    Linux 中的 cp 和 scp 命令是两个非常重要的文件 copy 命令,它们都可以用来 copy 文件,但是它们的使用场景和方法有所不同。 cp 命令是用于在同一台电脑上,在不同的目录之间来回 copy 文件。cp 命令的基本格式...

    Linux下的cp命令详解

    Linux下的cp命令详解 Linux下的cp命令是用于复制文件或目录的命令,是Linux操作系统中最基本也是最常用的命令...cp命令是Linux操作系统中非常重要的一个命令,掌握cp命令的使用方法可以帮助我们更好地管理文件和目录。

    Linux命令大全手册 550多个 Linux命令,内容包含 Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。

    提供的“Linux命令大全搜索工具 v1.5.1.md.pdf”很可能是一个增强版的命令手册,包含了搜索功能,使得在大量命令中快速定位所需信息变得更加便捷。这样的工具对于日常使用Linux的人来说尤其有价值,能够提高工作效率...

Global site tag (gtag.js) - Google Analytics