Linux命令行一:本机复制命令 cp

Linux为我们提供了两个用户文件复制的命令: cp 和 scp。

  • cp 用于在单linux系统上进行文件复制,不能进行跨服务器复制。
  • scp 是secure copy的简写,用于在Linux下进行远程文件复制的命令,scp是加密传输的。

本文我们介绍 cp 命令,下一篇文章介绍 scp 命令。

一、cp命令

语法: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 等
  -c                           same as --preserve=context
      --sno-preserve=属性列表   不保留指定的文件属性
      --parents                 复制前在目标目录创建来源文件路径中的所有目录
  -R, -r, --recursive           递归复制目录及其子目录内的所有内容
      --reflink[=WHEN]          控制克隆/CoW 副本。请查看下面的内如。
      --remove-destination      尝试打开目标文件前先删除已存在的目的地文件 (相对于 --force 选项)
      --sparse=WHEN             控制创建稀疏文件的方式
      --strip-trailing-slashes  删除参数中所有源文件/目录末端的斜杠
  -s, --symbolic-link           只创建符号链接而不复制文件
  -S, --suffix=后缀             自行指定备份文件的后缀
  -t,  --target-directory=目录  将所有参数指定的源文件/目录复制至目标目录
  -T, --no-target-directory     将目标目录视作普通文件
  -u, --update                 copy only when the SOURCE file is newer than the destination file or when the destination file is missing
  -v, --verbose                explain what is being done
  -x, --one-file-system        stay on this file system
  -Z, --context=CONTEXT        set security context of copy to CONTEXT
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

默认情况下,源文件的稀疏性仅仅通过简单的方法判断,对应的目标文件目标文件也被为稀疏。这是因为默认情况下使用了–sparse=auto 参数。如果明确使用–sparse=always 参数则不论源文件是否包含足够长的0 序列也将目标文件创文建为稀疏件。使用–sparse=never 参数禁止创建稀疏文件。

当指定了–reflink[=always] 参数时执行轻量化的复制,即只在数据块被修改的情况下才复制。如果复制失败或者同时指定了–reflink=auto,则返回标准复制模式。

备份文件的后缀为”~”,除非以–suffix 选项或是SIMPLE_BACKUP_SUFFIX环境变量指定。版本控制的方式可通过–backup 选项或VERSION_CONTROL 环境变量来选择。以下是可用的变量值:

  none, off       不进行备份(即使使用了--backup 选项)
  numbered, t     备份文件加上数字进行排序
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份

有一个特别情况:如果同时指定–force 和–backup 选项,而源文件和目标文件是同一个已存在的一般文件的话,cp 会将源文件备份。

二、常用命令

将 /home/source.txt 文件复制到 /home/dest.txt

cp /home/source.txt /home/dest.txt

递归复制/home/tool目录及其子目录内的所有内容到/home/tool1

  • 将tool目录复制到tool1下
cp -r /home/tool /home/tool1
  • 将tool目录下的内容复制到tool1下
cp -r /home/tool/* /home/tool1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值