精华内容
下载资源
问答
  • cp命令

    万次阅读 2019-07-01 14:20:22
    cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。 cp 命令的基本格式如下: [root@localhost ~]# cp [选项] 源文件 目标文件 选项: -a:相当...

    cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。

    cp 命令的基本格式如下:

    [root@localhost ~]# cp [选项] 源文件 目标文件
    

    选项:
    -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
    -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
    -i:询问,如果目标文件已经存在,则会询问是否覆盖;
    -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
    -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
    -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
    -r:递归复制,用于复制目录;
    -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

    需要注意的是,源文件可以有多个,但这种情况下,目标文件必须是目录才可以。
    这里的软链接,类似于 Windows 系统中的快捷方式,而硬链接则是透过文件系统的 inode 号产生一个新的文件名。无论是复制软链接还是硬链接,都不是复制源文件。有关软链接和硬链接更详细的介绍,可阅读《Linux ln命令》一节。

    【例 1】cp 命令基本用法
    cp 命令既可以复制文件,也可以复制目录。我们先来看看如何复制文件,例如:

    [root@localhost ~]# touch cangls
    #建立源文件
    [root@localhost ~]# cp cangls /tmp/
    #把源文件不改名复制到 /tmp/ 目录下
    
    如果需要改名复制,则命令如下:
    [root@localhost ~]# cp cangls /tmp/bols
    #改名复制
    

    如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp 命令默认执行的是“cp -i”的别名,例如:

    [root@localhost ~]# cp cangls /tmp/
    cp:是否覆盖"/tmp/cangls"?y
    #目标位置有同名文件,所以会提示是否覆盖
    

    接下来我们看看如何复制目录,其实复制目录只需使用“-r”选项即可,例如:

    root@localhost ~]# mkdir movie
    #建立测试目录
    [root@localhost ~]# cp -r /root/movie/ /tmp/
    #目录原名复制
    

    【例 2】复制软链接文件
    如果源文件不是一个普通文件,而是一个软链接文件,那么是否可以复制软链接的属性呢?我们试试:

    [root@localhost ~]# ln -s /root/cangls /tmp/cangls_slink
    #建立一个测试软链接文件/tmp/cangls_slink
    [root@localhost ~]# ll /tmp/cangls_slink
    lrwxrwxrwx 1 root root 12 6 月 14 05:53 /tmp/cangls_slink -> /root/cangls
    #源文件本身就是一个软链接文件
    [root@localhost ~]# cp /tmp/cangls_slink /tmp/cangls_t1
    #复制软链接文件,但是不加"-d"选项
    [root@localhost ~]# cp -d /tmp/cangls_slink /tmp/cangls_t2
    #复制软链接文件,加入"-d"选项
    [root@localhost ~]# ll /tmp/cangls_t1 /tmp/cangls_t2
    -rw-r--r-- 1 root root 0 6月 14 05:56 /tmp/cangls_t1
    #会发现不加"-d"选项,实际复制的是软链接的源文件,而不是软链接文件
    lrwxrwxrwx 1 root root 12 6 月 14 05:56/tmp/ cangls_t2-> /root/cangls
    #而如果加入了"-d"选项,则会复制软链接文件
    

    这个例子说明,如果在复制软链接文件时不使用 “-d” 选项,则 cp 命令复制的是源文件,而不是软链接文件;只有加入了 “-d” 选项,才会复制软链接文件。请大家注意,"-d" 选项对硬链接是无效的

    【例 3】保留源文件属性复制
    我们发现,在执行复制命令后,目标文件的时间会变成复制命令的执行时间,而不是源文件的时间。例如:

    
    [root@localhost ~]# cp /var/lib/mlocate/mlocate.db /tmp/
    [root@localhost ~]# ll /var/lib/mlocate/mlocate.db
    -rw-r-----1 root slocate2328027 6月 14 02:08/var/lib/mlocate/mlocate.db
    #注意源文件的时间和所属组
    [root@localhost ~]#ll /tmp/mlocate.db
    -rw-r----- 1 root root2328027 6 月 14 06:05/tmp/mlocate.db
    #由于复制命令由root用户执行,所以目标文件的所属组为了root,而且时间也变成了复制命令的执行时间
    

    而当我们执行备份、曰志备份的时候,这些文件的时间可能是一个重要的参数,这就需执行 “-p” 选项了。这个选项会保留源文件的属性,包括所有者、所属组和时间。例如:

    [root@localhost ~]# cp -p /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
    #使用"-p"选项
    [root@localhost ~]# ll /var/lib/mlocate/mlocate.db /tmp/mlocate.db_2
    -rw-r----- root slocate 2328027 6月 14 02:08 /tmp/mlocate.db_2
    -rw-r----- root slocate 2328027 6月 14 02:08 /var/lib/mlocate/mlocate.db
    #源文件和目标文件的所有属性都一致,包括时间
    

    我们之前讲过,"-a" 选项相当于 “-d、-p、-r” 选项,这几个选项我们已经分别讲过了。所以,当我们使用 “-a” 选项时,目标文件和源文件的所有属性都一致,包括源文件的所有者,所属组、时间和软链接性。使用 “-a” 选项来取代 “-d、-p、-r” 选项更加方便。

    【例 4】 “-l” 和 “-s” 选项
    我们如果使用 “-l” 选项,则目标文件会被建立为源文件的硬链接;而如果使用了 “-s” 选项,则目标文件会被建立为源文件的软链接

    这两个选项和 “-d” 选项是不同的,“d” 选项要求源文件必须是软链接,目标文件才会复制为软链接;而 “-l” 和 “-s” 选项的源文件只需是普通文件,目标文件就可以直接复制为硬链接和软链接。例如:

    [root@localhost ~]# touch bols
    #建立测试文件
    [root@localhost ~]# ll -i bols
    262154-rw-r--r-- 1 root root 0 6月 14 06:26 bols
    #源文件只是一个普通文件,而不是软链接文件
    [root@localhost ~]# cp -l /root/bols /tmp/bols_h
    [root@localhost ~]# cp -s /root/bols /tmp/bols_s
    #使用"-l" 和"-s"选项复制
    [root@localhost ~]# ll -i /tmp/bols_h /tmp/bols_s
    262154-rw-r--r-- 2root root 0 6 月 14 06:26/tmp/bols_h
    #目标文件 /tmp/bols_h 为源文件的硬链接文件
    932113 lrwxrwxrwx 1 root root 10 6 月 14 06:27/tmp/bols_s -> /root/bols
    #目标文件 /tmp/bols_s 为源文件的软链接文件
    
    展开全文
  • CP命令

    千次阅读 2018-01-29 16:55:18
    cp命令 拷贝文件,cp 【源文件】 【目标文件】(拷贝后的文件可直接对其重命名) 拷贝目录,cp -r 【源目录】 【目标目录】 拷贝目录是一定要加-r 否则命令不生效。 复制目录时,最好以/结尾。

    cp命令

    拷贝文件,cp 【源文件】  【目标文件】(拷贝后的文件可直接对其重命名)



    拷贝目录,cp -r 【源目录】 【目标目录】


    拷贝目录是一定要加-r 否则命令不生效。

    复制目录时,最好以/结尾。


    展开全文
  • 本文为大家详细介绍Linux中cp命令和scp命令的使用。
  • cp命令太慢?竟然存在更快的命令!

    万次阅读 多人点赞 2021-05-08 09:57:20
      在Linux环境下进行文件复制,通常就是用cp命令。对于绝大多数人来说,由于它的通用性,该命令已经倒背如流。近来工作要频繁对文件进行复制,然后再进行处理。可不幸的是,常用的cp命令用起来却是好慢好慢。  ...

    1. 前言

      在Linux环境下进行文件复制,通常就是用cp命令。对于绝大多数人来说,由于它的通用性,该命令已经倒背如流。近来工作要频繁对文件进行复制,然后再进行处理。可不幸的是,常用的cp命令用起来却是好慢好慢。

      为了提高效率,便打开谷歌搜索,寻找更好的解决方案。经过调研,得到了其余几个复制的命令,为了帮助大家,特意将命令分享如下(如果不想了解过程的,想直接看结论的同学可以直接翻到文章末尾)。

      下面就以指定的文件夹(/home/learn/files)为例进行实验和对比,为了让大家对该文件夹有更加直观的认识,先使用shell命令进行文件大小的分布情况进行统计。分为以下几个段大小进行统计:小于1K、 1K - 4K、 4K - 1M、1M - 10M、 10M - 1G、 1G 以上:

    bins=('0-1k','1k-4k','4k-1m','1m-10m','10m-1g','1g-inf')
    ls -Rla | awk '{print $9, $5}' | column -t | awk -v bins_str=$bins 'BEGIN{split(bins_str,bins,",");ttl=0} ($2 <= 1024) {a[1]++} (1024 < $2 && $2 <= 4096) {a[2]++} (4096 < $2 && $2 <= 1048576) {a[3]++} (1048576 < $2 && $2 <= 10485760) {a[4]++} (10485760 < $2 && $2 <= 1073741824) {a[5]++} (1073741824 < $2 ) {a[6]++} {ttl++} END {for(i=0;i<length(a);++i) print bins[i],a[i],"percentiles:",(a[i]/ttl)*100,"%"}'
    

      结果如下所示:

    范围个数比例
    0-1k5195299.7964%
    1k-4k40.00768374%
    4k-1m410.0787583%
    1m-10m50.00960467%
    10m-1g560.107572%

    2. 命令一: cp

    time cp -a /home/learn/files /home/learn/test/cp
    real    6m7.699s
    user    0m0.568s
    sys     0m48.372s
    

    3. 命令二:tar

    time (cd /home/learn/files; tar c .) | (cd /home/learn/test/tar ; tar x)
    real    2m7.848s
    user    0m1.209s
    sys     1m12.826s
    

    4. 命令三:rsync

    time (cd /home/learn/files; rsync -a . /home/learn/test/rsync)
    real    9m14.021s
    user    4m8.799s
    sys     3m10.757s
    

    5. 命令四:cpio

    time (cd /home/learn/files; find . -xdev) | cpio -pmd /home/learn/test/cpio
    real    9m23.032s
    user    0m7.435s
    sys     1m35.024s
    

    6. 结论

    命令时间
    cp6m7.7s
    tar2m7.8s
    rsync9m14s
    cpio9m23s

      tar命令是最快的

      rsync虽然速度很慢,但是它支持断点续传。所以它可以用来复制差异文件。

    展开全文
  • linux cp命令使用

    万次阅读 多人点赞 2017-12-26 14:09:37
    cp命令 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。 语法 cp [OPTION]… [-T] SOURCE DEST cp [OPTION]… SOURCE… DIRECTORY cp [OPTION]… -t DIRECTORY SOURCE… 示例 源目标...

    cp命令

    cp命令用来将一个或多个源文件或者源目录复制到指定的文件或目录中。

    语法

    cp [OPTION]… [-T] SOURCE DEST
    cp [OPTION]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…

    常用选项

    -i:交互式
    -r, -R: 递归复制目录及内部的所有内容;
    -a: 归档,相当于-dR –preserv=all
    -d:–no-dereference –preserv=links
    –preserv[=ATTR_LIST]
    -p: –preserv=mode,ownership,timestamp
    -v: –verbose:显示拷贝时的详细信息
    -f: –force:强制

    示例

    源是文件:
     * 目标不存在,则会新建目标文件,并将源内容填充至目标文件中

    [root@ming ~]# touch a.txt
    [root@ming ~]# cp a.txt cptest/b.txt
    [root@ming ~]# ls cptest/
    b.txt

     * 目标是已存在文件,会将源内容覆盖至目标文件中

    [root@ming ~]# cp a.txt cptest/b.txt 
    cp: overwrite ‘cptest/b.txt’? y

      这里为什么会提示覆盖呢?这是因为命令别名造成的,-i表示交互式,如果不想提示则目录起始点使用反斜杠

    [root@ming ~]# alias 
    alias cp='cp -i'
    [root@ming ~]# \cp a.txt cptest/b.txt

     * 目标是目录,则会在目标目录下新建与源同名的文件,并将源的内容填充至新文件中

    [root@ming ~]# touch c.txt
    [root@ming ~]# cp c.txt cptest/
    [root@ming ~]# ls cptest/
    c.txt

     * 源是多个文件,则目标必须是目录且存在,其他情形均为出错

    源是目录:需使用-r选项,表示递归
     * 目标不存在,则会创建指定目录,只能是单个源目录

    [root@ming ~]# mkdir aa
    [root@ming ~]# ll
    total 4
    drwxr-xr-x 2 root root 4096 Dec 27 13:44 aa
    [root@ming ~]# cp -r aa ./bb    此目录下没有bb文件夹但是会创建
    [root@ming ~]# ls
    aa  bb
    [root@ming ~]# cp -r aa bb ./cc    多个源目录时目标必须要存在,否则拷贝失败
    cp: target ‘./cc’ is not a directory
    [root@ming ~]# 

     * 目标存在且是文件则会报错,用脚想也知道不可能把目录下的所有东西放到一个文件中去
     * 目标存在且是目录,则会将源下所有文件和目录复制到目标中去

    展开全文
  • Linux cp命令

    万次阅读 多人点赞 2017-07-02 16:36:42
    cp 为复制命令,实际中分为文件间的复制,目录间的复制,文件到目录的复制以及链接的复制。文件间的复制cp file1 file2 如果 file2 不存在,就先创建 file2 ,然后把 file1 内容复制到 file2 中 如果 file2 存在,...
  • Ubuntu cp命令

    万次阅读 2018-06-26 17:43:01
    一、Linux cp命令 语法Linux cp命令 语法如下所示:cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE...参数说明:-a, --archive 等于-dR --preserve=all...
  • linux命令-cp命令

    万次阅读 多人点赞 2018-06-21 22:38:00
    cp命令 简介 cp(Copy file):将源文件复制至目标文件 或将多个源文件复制至目标目录。 语法 cp [选项] ... [-T] 源文件 目标文件 cp [选项] ... 源文件 目录 cp [选项] ... -t 目录 源文件 ...
  • Linux cp 命令详解

    千次阅读 2019-09-06 10:52:15
    在 Linux 和 Unix 系统上工作时,复制文件和目录是...在本文中,我们将解释如何使用该 cp 命令。 如何使用 cp 命令cp 命令的一般语法如下: cp [OPTIONS] SOURCE... DESTINATION SOURCE 可以有一个或多个文...
  • 本篇文章主要介绍了Linux 的cp命令详解, cp指令用于复制文件或目录,有兴趣的可以了解一下。
  • cp命令用法

    千次阅读 2019-04-29 10:23:17
    cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件...
  • Linux dd cp命令详细,以及命令比较
  • Linux cp命令详解

    万次阅读 多人点赞 2018-09-05 16:12:43
    Linux中使用cp命令复制文件(夹),本文就日常工作中常用的cp命令整理如下。一、复制一个源文件到目标文件(夹)。命令格式为:cp 源文件 目标文件(夹)这个是使用频率最多的命令,负责把一个源文件复制到目标文件...
  • docker cp命令详解

    万次阅读 2017-05-22 22:53:52
    docker cp命令,能够在容器和执行该命令的机器的本地文件系统之间复制文件或目录。 1. 使用格式 1)从容器中复制文件或目录到执行命令所在机器的指定路径 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 2)...
  • cp命令是我日常学习中经常会遇到的一个命令,下面这篇文章主要给大家介绍了关于Linux系统利用cp命令实现强制覆盖功能的方法,并且给大家简单的介绍了cp命令的基础知识,需要的朋友可以参考借鉴,下面随着小编来一起...
  • cp命令实现覆盖

    万次阅读 2019-03-19 10:56:48
    cp 命令参数以及覆盖与不覆盖 1.参数详解 -f:为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用...从上边我们可以看出,我们输入的cp命令,其实是“cp -i”命令, 也就是不管我们怎么输入 cp -rf,其...
  • Linux cp 命令

    千次阅读 2015-06-27 17:44:11
    Linux cp 命令 拷贝文件和目录 2、命令格式:  cp [OPTION]... [-T] SOURCE DEST  cp [OPTION]... SOURCE... DIRECTORY  cp [OPTION]... -t DIRECTORY SOURCE... 3、常用示例:  cp -a /etc/ ./
  • ubuntu下文件拷贝命令cp命令

    千次阅读 2018-11-07 21:25:16
    ubuntu下文件拷贝命令cp命令
  • Linux命令基础8-cp命令

    千次阅读 2017-05-14 12:19:56
    本文介绍Linux下cp命令,cp是英文单词copy的缩写,就是拷贝文件的意思。下面通过几个场景练习,来掌握cp的基本使用。cp的基本语法是:cp 参数 源文件路径 目的地路径 1. cp file1.txt file2.txt 上面的步骤就...
  • cp命令详解

    千次阅读 2018-07-17 09:39:26
    cp命令详解 -p参数 -p same as --preserve=mode,ownership,timestamps -f参数 -f, --force if an existing destination file cannot be opened, remove it and try again (this option is ignored when the -n ....
  • 实现linux的cp命令

    2012-12-10 23:02:27
    实现linux的cp命令,希望对你们有帮助
  • java -cp命令使用

    千次阅读 2018-09-15 16:08:10
    java -cp命令使用 Mac(Linux)下格式 java -cp .:你的jar包路径 主类的全限定名称 举例 java -cp .:myClass.jar packname.mainclassname 注意: windows下为.;myClass.jar 分号...
  • linux常用命令 cp命令的使用和介绍

    千次阅读 2018-10-09 08:19:55
    linux常用命令 cp命令的使用和介绍
  • centos cp命令实例

    万次阅读 2013-10-02 10:32:19
    centos下的cp命令实例学习,供大家学习参考。指令名称:cp(copy) 功能介绍:将一个文件复制至另一个文件,或将数个文件复制至另一目录。 语法格式:  cp [options] s centos下的cp命令实例学习,供大家学习参考...
  • cp命令的基本实现

    千次阅读 2018-06-02 20:03:46
    1.cp命令的作用是什么?cp fileA fileB上一行命令是cp命令的基本用法,表示:将文件名为fileA的文件中的内容拷贝到文件名为fileB的文件中去,若fileB文件有内容,则fileB文件中的内容会被fileA文件中的内容覆盖;若...
  • linux中cp命令详解

    千次阅读 2019-01-12 19:26:17
    cp命令:  拷贝文件或目录 格式:cp [OPTION] SRC... DEST *cp命令的使用有多种情况: SRC是单个文件时: 如果DEST不存在,则新建DEST并将SRC内容填充至DEST内 如果DEST存在: DEST是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 468,492
精华内容 187,396
关键字:

cp命令