`

我使用过的Linux命令之cp - 复制文件

阅读更多

我使用过的Linux命令之cp - 复制文件

本文链接:http://codingstandards.iteye.com/blog/787861    (转载请注明出处)

用途说明

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

[root@jfht ~]# type -a cp
cp is aliased to `cp -i'    <== 在命令行状态,cp实际上是个别名
cp is /bin/cp
[root@jfht ~]#

常用参数

-i 询问是否覆盖。

-f 强制覆盖,但如果有-i参数时,此参数无效。

-r 递归复制。

-a 递归复制,并且保留文件的时间、权限、属主等属性。

使用示例

示例一 复制单个文件

[root@jfht ~]# ls >ls0.txt
[root@jfht ~]# ls -l ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:41 ls0.txt

等待两分钟再操作。因为同一分钟看不出效果。
[root@jfht ~]# cp ls0.txt ls1.txt
[root@jfht ~]# ls -l ls0.txt ls1.txt
-rw-r--r-- 1 root root 213 10-18 20:41 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:43 ls1.txt

在没有带-a参数时,两个文件的时间是不一样的。
[root@jfht ~]# cp -a ls0.txt ls2.txt
[root@jfht ~]# ls -l ls0.txt ls2.txt
-rw-r--r-- 1 root root 213 10-18 20:41 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:41 ls2.txt

在带了-a参数时,两个文件的时间是一致的。
[root@jfht ~]# cp ls0.txt ls2.txt
cp:是否覆盖“ls2.txt”? n

目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。
[root@jfht ~]# cp -f ls0.txt ls2.txt
cp:是否覆盖“ls2.txt”? n

目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
[root@jfht ~]# command cp ls0.txt ls2.txt

使用command命令执行cp时,就不会执行cp别名了,而是直接执行cp外部命令。
[root@jfht ~]# ls -l ls0.txt ls2.txt
-rw-r--r-- 1 root root 213 10-18 20:41 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:48 ls2.txt

[root@jfht ~]# cp ls0.txt ls0.txt
cp: “ls0.txt” 及 “ls0.txt” 为同一文件
[root@jfht ~]# cp -f ls0.txt ls0.txt
cp: “ls0.txt” 及 “ls0.txt” 为同一文件

如果目标文件就是源文件,那么无论加不加-f标志,都是不会覆盖的。

示例二 复制文件到目录

[root@jfht ~]# mkdir tmp
[root@jfht ~]# cp ls0.txt tmp
[root@jfht ~]# cp -a ls1.txt tmp
[root@jfht ~]# cp -a ls1.txt ls2.txt tmp
cp:是否覆盖“tmp/ls1.txt”? n
[root@jfht ~]# ls -l ls?.txt tmp/ls?.txt
-rw-r--r-- 1 root root 213 10-18 20:41 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:43 ls1.txt
-rw-r--r-- 1 root root 213 10-18 20:48 ls2.txt
-rw-r--r-- 1 root root 213 10-18 21:02 tmp/ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:43 tmp/ls1.txt
-rw-r--r-- 1 root root 213 10-18 20:48 tmp/ls2.txt
[root@jfht ~]#

示例三 复制整个目录

[root@jfht ~]# cp tmp tmp1
cp: 略过目录 “tmp”
[root@jfht ~]# cp -a tmp tmp1
[root@jfht ~]# ls tmp tmp1
tmp:
ls0.txt  ls1.txt  ls2.txt

tmp1:
ls0.txt  ls1.txt  ls2.txt
[root@jfht ~]# ls -l tmp tmp1
tmp:
总计 24
-rw-r--r-- 1 root root 213 10-18 21:02 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:43 ls1.txt
-rw-r--r-- 1 root root 213 10-18 20:48 ls2.txt

tmp1:
总计 24
-rw-r--r-- 1 root root 213 10-18 21:02 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:43 ls1.txt
-rw-r--r-- 1 root root 213 10-18 20:48 ls2.txt
[root@jfht ~]#

[root@jfht ~]# cp -a tmp tmp1
[root@jfht ~]# ls -l tmp tmp1
tmp:
总计 24
-rw-r--r-- 1 root root 213 10-18 21:02 ls0.txt
-rw-r--r-- 1 root root 213 10-18 20:43 ls1.txt
-rw-r--r-- 1 root root 213 10-18 20:48 ls2.txt

tmp1:
总计 32
-rw-r--r-- 1 root root  213 10-18 21:02 ls0.txt
-rw-r--r-- 1 root root  213 10-18 20:43 ls1.txt
-rw-r--r-- 1 root root  213 10-18 20:48 ls2.txt
drwxr-xr-x 2 root root 4096 10-18 21:03 tmp
[root@jfht ~]#

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

示例四 将光盘复制成光盘映像文件(iso文件)

把要复制的光盘放在光驱中,注意不需要将/dev/cdrom设备mount上来。

[root@localhost data] cp /dev/cdrom disk1.iso

[root@localhost data] ls -l disk1.iso

-rw-r-----      1    root     root      655392768      10月  18   19:48   disk1.iso

[root@localhost data]

注意:需要好几分钟时间。

问题思考

1. 在Windows下有没有工具将光盘复制成iso文件?

2. 在目标目录存在时,怎么将源目录中的文件复制到目标目录,而不是将整个目录复制到目标目录里面?

相关资料

【1】ATEGPU LINUX CP命令详解

【2】Yu'-blog linux下cp,mv和rm命令对lnodes的影响(英文版)

 

返回 我使用过的Linux命令系列总目录

 

1
0
分享到:
评论

相关推荐

    linux 实现cp -r命令

    在Linux操作系统中,`cp`命令是一个非常基础且重要的工具,用于复制文件和目录。而`-r`或`--recursive`选项则是`cp`命令的一个关键参数,它允许我们递归地复制整个目录及其子目录下的所有内容。这篇内容我们将深入...

    Linux基础课件-- Linux系统文件复制-cp命令.pptx

    在Linux操作系统中,掌握基本的文件管理命令是至关重要的,其中`cp`命令是用于复制文件和目录的一个核心工具。本课件主要介绍了`cp`命令的作用、基本格式以及多种用法,帮助初学者理解并熟练运用这个命令。 首先,...

    Linux 基础 31-拷贝和移动命令-03-cp命令复制文件.flv

    Linux 基础 31-拷贝和移动命令-03-cp命令复制文件.flv

    Linux命令操作实验-文件目录.pdf

    * 使用 cp 命令将文件复制到当前目录下,例如将 /etc/passwd 文件复制到当前目录下 * 使用 chown 命令改变文件的所有者和组所有者,例如将 passwd 文件的所有者和组所有者都改为 nobody 三、Shell 的使用 * 使用 ...

    Linux命令操作实验-文件目录.docx

    Linux 命令操作实验——文件目录 Linux 命令操作实验是 Linux 操作系统中最基本的操作之一。...同时,我们也学习了如何使用这些命令来完成一些常见的任务,如新建目录、复制文件、改变文件所有者等。

    Linux下的cp命令详解

    Linux下的cp命令是用于复制文件或目录的命令,是Linux操作系统中最基本也是最常用的命令之一。cp命令的基本语法为:`cp [options] source destination`,其中`source`是要复制的文件或目录,`destination`是要将文件...

    linux命令详解---超值哟

    7. **cp**:复制文件或目录,`cp file1 file2`复制file1为file2,`cp -r sourcedir targetdir`复制目录。 8. **mv**:移动或重命名文件或目录,如`mv file1 file2`重命名file1为file2,`mv sourcedir targetdir`...

    linux命令学习总结--更新

    `cp`命令用于复制文件或目录。 - `-a`:等价于`-dpr`选项组合。 - `-d`:复制链接文件而非实际文件。 - `-f`:强制覆盖已存在的目标文件。 - `-i`:如果目标文件已存在则询问是否覆盖。 - `-I`:创建硬链接而非复制...

    Linux基础命令及其解释--基础篇

    `cp` 命令用于复制文件或目录,例如 `cp file1 file2` 复制 "file1" 为 "file2",`cp -r folder1 folder2` 复制 "folder1" 到 "folder2"。 8. **mv** - 移动或重命名文件或目录 `mv` 命令可以移动文件或目录,也...

    Linux 命令全集 - - Linux 命令全集

    - `cp`: 复制文件或目录,`-r`用于递归复制目录。 - `mv`: 移动或重命名文件或目录。 2. **文件和目录操作** - `touch`: 创建新文件或更新文件时间戳。 - `cat`: 查看文件内容,`more`或`less`分页查看。 - `...

    最全Linux常用命令大全-linux常用命令全集

    `cp` 命令用来拷贝文件,要复制文件,输入命令:`cp &lt;source filename&gt; &lt;target filename&gt;`。例如,`cp t.txt Document/t` 命令将把文件 `t.txt` 复制到 `Document` 目录下,并命名为 `t`。 8. `mv` 命令:移动文件...

    Linux必备命令-之cp命令详解

    在Linux操作系统中,`cp`命令是一个非常基础且重要的工具,用于在文件系统中复制文件和目录。它具有多种选项来控制复制行为,使其能够适应各种需求。下面我们将深入探讨`cp`命令的用法、选项以及示例。 ### 命令...

    Linux基础课件Linux系统文件复制cp命令共9页.p

    这个命令是Linux用户日常操作中不可或缺的一部分,用于在文件系统内复制文件或目录。 【描述】"Linux基础课件Linux系统文件复制cp命令共9页.pdf.zip" 提示这是一份以PDF格式编写的9页教学材料,被压缩成ZIP文件。这...

    Linux命令大全 2011-12-10

    6. **cp**:复制文件或目录,可以进行浅复制或深复制。 7. **mv**:移动或重命名文件和目录。 8. **cat**:查看文件内容,常用于查看文本文件。 9. **more**/**less**:分页查看文件内容,适合处理大文件。 10. **vi...

    Linux常用命令--个人整理.doc

    - 使用`cp`命令复制文件时,若目标位置已有同名文件,则会询问是否覆盖。 - 使用`rm`命令删除文件时,如果不加参数`-f`,则会询问是否确认删除。 - `cp -l`创建硬链接,`cp -s`创建符号链接。两种链接方式各有特点,...

    Linux 系统 命令大全---(修改版)

    - `cp`:复制文件或目录。 - `mv`:移动或重命名文件和目录。 2. **文件和目录管理**: - `find`:在指定目录下查找文件,根据文件名、大小、时间等条件。 - `grep`:在文件中搜索特定模式的文本行。 - `more`...

    Windows下的Linux中cp复制命令(非bat,是cp的Windows命令实现)

    这里提到的"Windows下的Linux中cp复制命令"实际上是指在Windows上通过这些工具来实现与Linux系统中`cp`命令类似的文件复制功能。`cp`命令在Linux中是一个非常基础且重要的命令行工具,用于复制文件和目录。 **`cp`...

    Linux中复制目录报错cp-omitting directory的解决办法.docx

    * 使用 cp -a 命令时,目录下的所有子目录和文件都会被复制,并保留链接、文件属性。 使用 cp 命令复制目录时需要加参数 -r,否则将出现 "cp: omitting directory" 的报错信息。同时,我们可以使用 cp 命令的其他...

    实现linux的cp命令

    在Linux系统中,`cp`命令是一个非常基础且重要的工具,用于复制文件或目录。它在用户日常操作和系统管理中扮演着不可或缺的角色。本文将深入解析如何通过C语言实现一个简单的`cp`命令功能。 首先,我们来看一下提供...

    linux常用命令大全 - Linux - RHEL - Linux Commands

    本文将详细介绍一系列在Red Hat Enterprise Linux(RHEL)环境中常用的Linux命令。 #### 二、基本命令介绍 ##### 1. **目录与文件操作** - **ls**:显示目录内容。 - `ls`:列出当前目录下的文件和子目录。 - `ls...

Global site tag (gtag.js) - Google Analytics