Linux cp命令总结

LInux平台下,cp为用于拷贝文件最常见的命令。通过参数的控制,它还能够实现创建软链接,硬链接,递归复制功能。

参数解释:

用法:cp [选项]... [-T] 源文件 目标文件
 或:cp [选项]... 源文件... 目录
 或:cp [选项]... -t 目录 源文件...
将指定<源文件>复制至<目标文件>,或将多个<源文件>复制至<目标目录>。

必选参数对长短选项同时适用。
  -a, --archive                 等于-dR --preserve=all
      --attributes-only 仅复制属性而不复制数据      --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 等
      --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                  只在源文件比目标文件新,或目标文件
                                不存在时才进行复制
  -v, --verbose                 显示详细的进行步骤
  -x, --one-file-system         不跨越文件系统进行操作
  -Z                            设置目标文件的 SELinux 安全上下文为默认类型

常用选项

cp -r sourcedir destdir

使用 cp -r 选项可以递归的复制源目录。但是在使用时需要注意一个问题,目标目录是否存在会影响到这个命令的最终执行结果。

例如,在test文件下建立名为276的文件夹,并新建一个test.sh文件。

输入以下命令

cp -r 276 278

然后查看 276 278文件夹下的内容,均有test.sh这个文件。且278目录下没有276这个子文件夹。

此时再次执行

cp -r 276 278

可以看到278目录中有了276这个子文件夹,这个子文件夹中也有test.sh文件。

在使用cp -r 命令时需要注意上述的小差别,避免导致复制时目录层级错误。

如果不想要再嵌套一层源目录,可以使用命令:

cp -r sourcedir/* destdir

来避免目录的嵌套。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值