Linux 基础命令 -- cp

命令介绍

命令:cp 复制文件或目录

用法: cp [OPTION]… [-T] SOURCE DEST cp 选项 源目标

​ cp [OPTION]… SOURCE… DIRECTOR cp 选项 源目录 新目录

​ cp [OPTION]… -t DIRECTORY SOURCE… cp 选项 目录源

命令选项

[root@fp-21 ~]# cp --help

  -a, --archive                # 复制目录时是使用,相当于-d、-p、-R参数组合
  -d                           # 复制的源文件如果是链接文件,则复制链接文件而不是指向的文件本身
  -f, --force                  # 强制复制,如果目标存在,不会进行-i、-u选项,直接覆盖
  -i, --interactive            # 复制时如果目标文件已经存在,询问是否替换
  -H                           # 遵循源代码中的命令行符号链接
  -l, --link                   # 不复制文件,生成硬链接文件
  -L, --dereference            # 始终遵循源中的符号链接
  -n, --no-clobber             # 不覆盖现有的文件
  -P, --no-dereference         # 永远不要跟随源代码中的符号链接
  -p                           # 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
  -R, -r, --recursive          # 递归复制目录
  -s, --symbolic-link          # 不复制文件,生成软链接文件
  -S, --suffix=SUFFIX          # 覆盖通常的备份后缀
  -t                           # 将所有源参数复制到目录中
  -T, --no-target-directory    #  DEST 视为普通文件
  -u, --update                 # 若文件同名,属性不一样(如修改时间,大小等),则覆盖目标文件
  -v, --verbose                # 复制的详细解释
  --help                       # 帮助文档
  --version                    # 版本信息

命令实例

# 复制目录时是使用,相当于-d、-p、-R参数组合
[root@fp-21 opt]# cp -a apple dir/
[root@fp-21 opt]# ll dir/
total 0
-rw-r--r--. 1 root root 0 Mar  4 22:05 apple

# 复制的源文件如果是链接文件,则复制链接文件而不是指向的文件本身
[root@fp-21 opt]# cp -d link_banana dir/
[root@fp-21 opt]# ll dir/
total 0
-rw-r--r--. 1 root root 0 Mar  4 22:05 apple
lrwxrwxrwx. 1 root root 6 Mar  4 23:15 link_banana -> banana

# 复制时如果目标文件已经存在,询问是否替换
[root@fp-21 opt]# cp -i apple dir/apple 
cp: overwrite ‘dir/apple’? y

# 不覆盖现有的文件
[root@fp-21 opt]# cp -n apple dir/apple

# 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
[root@fp-21 opt]# ll dir/apple 
-rw-r--r--. 1 root root 0 Mar  4 22:05 dir/apple
[root@fp-21 opt]# chown bin:bin apple 
[root@fp-21 opt]# cp -p apple dir/apple 
cp: overwrite ‘dir/apple’? y
[root@fp-21 opt]# ll dir/apple 
-rw-r--r--. 1 bin bin 0 Mar  4 22:05 dir/apple

# 递归复制目录
[root@fp-21 opt]# mkdir dir.bak
[root@fp-21 opt]# cp -r dir ./dir.bak/
[root@fp-21 opt]# tree dir.bak/
dir.bak/
└── dir
    ├── apple
    ├── banana
    └── link_banana -> banana

# 若文件同名,属性不一样(如修改时间,大小等),则覆盖目标文件
[root@fp-21 opt]# echo "改变文件大小" > apple 
[root@fp-21 opt]# cp -u apple dir/apple 
cp: overwrite ‘dir/apple’? y
[root@fp-21 opt]# ll dir/apple 
-rw-r--r--. 1 bin bin 19 Mar  4 23:36 dir/apple

# 复制的详细解释
[root@fp-21 opt]# cp -v orange dir/
‘orange’ -> ‘dir/orange’

link 查看 Linux 基础命令

只有注入思想的博客才是好的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值