精华内容
下载资源
问答
  • 本篇文章主要介绍了Linux中拷贝 cp命令中拷贝所有的写法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • Linux中拷贝和移动文件

    千次阅读 2019-04-12 22:08:16
    Linux中拷贝和移动文件 命令 对应英文 作用 tree [目录名] tree 以树状图列出文件目录结构 cp 源文件 目标文件 copy 复制文件或者目录 mv 源文件 目标文件 move 移动文件或者目录 / 文件或者目录重命名 ...

    Linux中拷贝和移动文件

    命令 对应英文 作用
    tree [目录名] tree 以树状图列出文件目录结构
    cp 源文件 目标文件 copy 复制文件或者目录
    mv 源文件 目标文件 move 移动文件或者目录 / 文件或者目录重命名

    tree

    选项 含义
    -d 只显示目录

    cp

    选项 含义
    -i 覆盖文件前进行提示
    -r 若给出的源文件是目录文件,则cp。将递归该目录下的子目录和文件,目标文件必须是一个目录名

    mv

    选项 含义
    -i 覆盖文件前提示
    展开全文
  • Linux中拷贝 cp命令中拷贝所有的写法

    千次阅读 2016-12-30 01:17:22
    今天在编写一个脚本的时候,发现一个比较奇怪的问题:就是在使用cp拷贝当前目录下所有文件到目标目录的时候,源和目标目录大小不同。原来一直没有留意有这样的问题,后来查了些资料,才知道以前一直使用的格式有误,...
     今天在编写一个脚本的时候,发现一个比较奇怪的问题:就是在使用cp拷贝当前目录下所有文件到目标目录的时候,源和目标目录大小不同。原来一直没有留意有这样的问题,后来查了些资料,才知道以前一直使用的格式有误,
    

    一、预备
    cp就是拷贝,最简单的使用方式就是:

    cp oldfile newfile

    但这样只能拷贝文件,不能拷贝目录,所以通常用:

    cp -r old/ new/

    那就会把old目录整个拷贝到new目录下。注意,不是把old目录里面的文件拷贝到new目录,而是把old直接拷贝到new下面,结果是:

    [root@dc5 test]# ll new/
    total 4
    drwxr-xr-x  2 root root 4096 Dec 15 11:55 old

    那如果要保持源文件的所有权限,可以这样:

    cp -rp old/ new/

    -p参数,可以保持权限、宿主、时间栈,还可能包括link等;还有更简单的,就是用:

    cp -a old/new/

    -a参数,就等于-dpR。

    二、问题1
    好,我们来看看这次的问题。环境是:
    ◎两个目录:old、new,其中old里面有个三个内容:test1文件、test2目录,还有就是.test3,这是一个隐含文件。

    [root@dc5 test]# ll -laR
    .:
    total 20
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 .
    drwxrwxrwt  7 root root 4096 Dec 15 11:59 ..
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 new
    drwxr-xr-x  3 root root 4096 Dec 15 12:14 old
    
    ./new:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    
    ./old:
    total 12
    drwxr-xr-x  3 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    -rw-r--r--  1 root root    0 Dec 15 12:07 .test3
    -rw-r--r--  1 root root    0 Dec 15 12:05 test1
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 test2
    
    ./old/test2:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  3 root root 4096 Dec 15 12:14 ..

    ◎操作一:

    [root@dc5 test]# cp -a old/* new/
    [root@dc5 test]# ll -laR new/
    new/:
    total 12
    drwxr-xr-x  3 root root 4096 Dec 15 12:15 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    -rw-r--r--  1 root root    0 Dec 15 12:05 test1
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 test2
    
    new/test2:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  3 root root 4096 Dec 15 12:15 ..

    问题出来了:隐含的.test3文件没有一齐拷贝到new目录下。
    原因是:参数使用不正确。这样的写法,通常都是因为熟悉了过去Dos的格式(包括我自己),而实际在bash环境下,cp使用是不能匹配类似.开头的隐含文件的。
    重点内容

    重点内容
    ◎操作二
    正确的写法应该这样:

    [root@dc5 test]# cp -a old/. new/
    [root@dc5 test]# ll -laR new/
    new/:
    total 12
    drwxr-xr-x  3 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    -rw-r--r--  1 root root    0 Dec 15 12:07 .test3
    -rw-r--r--  1 root root    0 Dec 15 12:05 test1
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 test2
    
    new/test2:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  3 root root 4096 Dec 15 12:14 ..

    不用*号,而用.号代替。
    还有一种比较复杂一些的写法:

    [root@dc5 test]# cp -a old/* old/.[^.]* new/
    [root@dc5 test]# ll -laR new/
    new/:
    total 12
    drwxr-xr-x  3 root root 4096 Dec 15 12:25 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    -rw-r--r--  1 root root    0 Dec 15 12:07 .test3
    -rw-r--r--  1 root root    0 Dec 15 12:05 test1
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 test2
    
    new/test2:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  3 root root 4096 Dec 15 12:25 ..

    请注意写法,不要写成.*了。(原因请看下面)

    三、问题2
    上面提到不要写成.,那.代表什么?

    [root@dc5 test]# echo .*
    . ..

    .*代表的是当前目录,以及上一层目录。
    所以,使用.*会导致更大的问题:

    [root@dc5 test]# cp -a old/.* new/
    cp: cannot copy a directory, `old/..', into itself, `new/'
    cp: cannot copy a directory, `old/..', into itself, `new/'
    cp: will not create hard link `new/old' to directory `new/.'
    cp: overwrite `new/.test3'? y
    [root@dc5 test]# ll -laR new/
    new/:
    total 16
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    -rw-r--r--  1 root root    0 Dec 15 12:07 .test3
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 new
    -rw-r--r--  1 root root    0 Dec 15 12:05 test1
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 test2
    
    new/new:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..
    -rw-r--r--  1 root root    0 Dec 15 12:07 .test3
    -rw-r--r--  1 root root    0 Dec 15 12:05 test1
    
    new/test2:
    total 8
    drwxr-xr-x  2 root root 4096 Dec 15 12:14 .
    drwxr-xr-x  4 root root 4096 Dec 15 11:55 ..

    也就是说,使用.*就等于这样了:

    [root@dc5 test]# cp -a old/. old/.. old/.test3 new/
    [root@dc5 test]# echo old/.*
    old/. old/.. old/.test3
    展开全文
  • 资源支持平台是linux,主要功能是复制 ldd 出来的库到指定的文件夹下, 主要是项目自己用,所以容错性可能不好,欢迎指正!使用方法: 编译出的程序名 + 空格 + 库或程序名+指定的路径名
  • Linux 拷贝与粘贴

    千次阅读 2017-07-26 07:55:54
    选中即为复制,点击鼠标键即为粘贴
    选中即为复制,点击鼠标中键即为粘贴
    
    展开全文
  • cp命令拷贝当前目录以及子目录下的所有文件 忽略当前文件的隐藏文件 cp   -r   /usr/* /test1/ 完整复制所有文件 cp   -r   /usr/. /test1/ 如果对你有帮助,请一定...

    cp命令拷贝当前目录以及子目录下的所有文件
    忽略当前文件中的隐藏文件

    cp   -r   /usr/* /test1/

    完整复制所有文件

    cp   -r   /usr/. /test1/

    如果对你有帮助,请一定要帮忙点赞好评,给予创作的动力…

    展开全文
  • 能够说出拷贝文件夹使用的命令选项 1. cp命令选项 命令选项 说明 -i 交互式提示 -r 递归拷贝目录及其内容 -v 显示拷贝后的路径描述 -a 保留文件的原有权限 cp -i命令选项效果图: cp -r命令选项...
  • Linux中的零拷贝技术

    2020-09-28 16:39:29
    Linux中的零拷贝技术,对于开发使用linux内存管理的设计开发者来说,是一本好的参考书,可以指导用户进行高效零拷贝技术开发
  • windows与linux文件拷贝出现中文乱码解决 使用ubuntu下载convmv 使用命令 convmv -f UTF-8 -t GBK -r --nosmart --notest <文件夹名> 由于windows使用GBK汉字显示,而linux使用UTF-8汉字,所以需要做相应...
  • 这个文件是我从网上下载jar包,结合自己需求写的从Linux服务器中拷贝文件至本地路径,适用于跨服务器系统集成中需要从其他Linux服务器中拷贝文件至本服务器上,本机服务器可以是Windows也可以是Linux
  • linux文件拷贝

    2019-12-31 09:40:29
    一.本机文件拷贝命令: cp 参数 a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其...p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件。 r 若给出的源文件是...
  • linux拷贝

    2017-05-22 09:54:47
    传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输,这样做最大的好处是可以减少实际的物理磁盘 I/O ...
  • Linux拷贝技术

    2021-02-17 22:48:16
    Linux中 标准I/O操作都是基于数据拷贝的缓冲机制,从内核中拷贝数据到用户空间的缓冲区中,然后将用户缓冲区中的数据拷贝至内核中。所以I/O操作频繁的使用会导致数据在内核和用户空间之间进行频繁的切换,这样做的...
  • Linux远程拷贝

    2019-11-23 15:39:35
    返回的结果有该域名的IP地址。 远程拷贝 1.从本机拷贝数据到远程的服务器上 要求:必须知道对方的账户和密码,且具备相应的权限。 语法:scp [-r] [path]/file | dir {UserName}@Host_IP:/[path] -r 该选项用于...
  • Linux拷贝

    2020-01-09 10:13:05
    在这之前先来了解一下零拷贝(直接让操作系统的 Cache 的数据发送到网卡后传输给下游的消费者):平时从服务器读取静态文件时,服务器先将文件从复制到内核空间,再复制到用户空间,最后再复制到内核空间并通过网卡...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,866
精华内容 3,546
关键字:

linux中拷贝

linux 订阅