Linux 常用命令 - cp 命令详解

Linux cp 是 Unix 和 Linux 系统中用于复制文件和目录的命令,你应该经常会用到它,cp 是一个简单的命令,只有几个参数选项,但你有必要详细的了解它。

命令语法:

cp [OPTION] SOURCE DEST

其中,SOURCE 表示源文件或源目录,DEST 表示目标文件或目标目录,OPTION 表示各种参数。如果 SOURCE 是一个文件,那么 DEST 就是一个文件名或目录名;如果SOURCE是一个目录,那么DEST也必须是一个目录名。

示例:将 /root/123.txt 复制到 /root/bak/ 目录下

cp /root/123.txt /root/bak/

命令参数(注意有大小写之分):

  • -a:保留源文件或目录的所有属性,包括权限、所有者、时间戳等。其作用等于 dpR 参数组合。
  • -b:覆盖已存在的文件目标前将目标文件备份。备份文件的字尾会被加上一个默认的 "~" 备份后缀字符串。
  • -f:强行复制文件或目录,不会出现覆盖提示,不论目的地文件或目录是否已经存在。有的 Linux 发行版默认设置了别名,这个参数无效。参考这里解决
  • -i:覆盖文件之前先询问用户
  • -l:对源文件建立硬链接,而非复制文件
  • -p:(小写) 保留源文件或目录的属性,包括所有者、所属组、权限与时间
  • -P:(大写) 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的地的目录必须已经存在。如果要复制一个符号链接,需要使用-P选项,否则cp命令将复制符号链接指向的文件,而不是符号链接本身。
  • -r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -s:(小写) 对源文件建立符号链接,而非复制文件
  • -S:(大写) <备份字尾字符串> 自行指定备份文件的后缀字符串。用"-b"参数备份目的地文件后,备份文件的字尾会被加上一个默认的 "~" 备份后缀字符串。
  • -u:只会在源文件的修改时间 (Modification Time) 较目的地文件更新时,或是目的地地文件并不存在,才复制文件
  • -v:显示执行过程
  • -x:选项表示 one-file-system (单文件系统),它的作用是在复制文件或目录时,仅限于当前文件系统,不会跨越文件系统边界(若源文件或目录位于同一挂载点, 不会尝试跨越挂载点复制文件)。
  • --help 显示在线帮助
  • --sparse=<使用时机> 设置保存稀疏文件的时机
  • --version 显示版本

示例:将 /root/123.txt 复制到 /root/bak/ 目录下,如果目的地文件夹有同名文件,先备份为123.txt~,在进行复制

cp -b /root/123.txt /root/bak/  

标签

发表评论