zoukankan      html  css  js  c++  java
  • 【Linux高频命令专题(11)】cp

    概述

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

    命令格式:

    cp [选项]... [-T] 源 目的
    或:cp [选项]... 源... 目录
    或:cp [选项]... -t 目录 源...
    

    命令参数:

    -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  复制目录及目录内的所有项目
    

    常用范例

    # 复制单个文件到目标目录,文件在目标文件中不存在
    cp log.log test5
    # 在没有带-a参数时,复制前后两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。 
    
    # 目标文件存在时,会询问是否覆盖,这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
    cp log.log test5
    
    # 复制整个目录
    cp -a test3 test5 
     
    # 复制的 log.log 建立一个连结档 log_link.log,这个log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!
    cp -s log.log log_link.log 
    
  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/nixi8/p/4856000.html
Copyright © 2011-2022 走看看