• cp 命令有坑


    cp 是个很常用的命令,

    基本语法为  cp -v  a   b  把文件a 复制为文件b(-v为显示做了什么,这是非常安全的做法,建议新手添加此参数)

    参数说明:

    -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于-dR  或者 --preserve=all

    -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

    -f:覆盖已经存在的目标文件而不给出提示。

    -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。(一般情况下系统别名已自动添加此参数)

    -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

    -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

    -l:不复制文件,而是生成 硬链接

    -s :不复制文件,而是生成 软链接

    -v: 显示cp指令做了什么

    场景:cp  -v  a   b   把文件a拷贝为文件b,两者相似而不相同

    坑1:   b为已存在目录时, a会被复制到 目录b下(新手会出现的)

      正确指令:

        想复制文件本身时: cp -T a b   (b与a不是相同属性时会报错而且复制不了)

        想复制到目标目录下时: cp  a  b/     (b为非目录时会报错)

    坑2: a 为软连接的情况下, 复制后的文件会是a所连接文件的拷贝

    坑3: 基于坑2, cp -r 时,  复制后的文件也会是软连接,指向目录也会相同(不过基本上都是失效)

       正确指令:

        想复制结果也是软连接时: cp   -sr   a   b    或    cp   -s  a   b 

        想复制结果为软连接的目标时:cp  -Lr    a   b   或    cp   -L   a   b 

          

    坑4:cp -l  千万不要用这个参数,因为这个是硬连接!!!

  • 相关阅读:
    【C++ Primer Chapter 3 总结】Library vector & string Type
    【C++ Primer Chapter 4 总结】左值 & 右值
    【C++ Primer Chapter 6 总结】函数
    mysql添加索引
    注册plsql
    挑战答题小程序
    开源答题小程序
    答题如何防止作弊
    党史知识答题活动小程序复盘整理
    党史学习教育答题活动复盘
  • 原文地址:https://www.cnblogs.com/caya-yuan/p/10603448.html
Copyright © 2020-2023  润新知