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 基础命令

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

发布了42 篇原创文章 · 获赞 180 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xtlhxl/article/details/104650226