Linux命令(7):cp

linux下的cp命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

说明:cp 将源文件复制至目标文件,或将多个源文件复制至目标目录。

参数命令:

  • a (archive)该选项通常在拷贝目录时使用。尽可能将档案状态、权限等资料都照原状予以复制。

  • d (backup)拷贝时保留链接。

  • f (force)若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制而不提示。

  • i (interactive)和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

  • p (preserve)此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

  • r (recursive)若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件至目的地。此时目标文件必须为一个目录名。

  • l (link)不作拷贝,只是链接文件。

为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖。建议用户在使用cp命令拷贝文件时,最好使用i选项。

实例:
1.将 mt1.txt 文件复制到mt2.txt 文件里;(mt2.txt存在)
命令为:cp mt1.txt mt2.txt

# 首先查看mt1.txt和mt2.txt文件内容,用cat+文件名
[mt555@localhost Desktop]$  cat mt1.txt                                     [20:35:43]
123
456
789
0
[mt555@localhost Desktop]$ cat mt2.txt                                     [20:35:49]
hello
my name is mt
[mt555@localhost Desktop]$ cp mt1.txt mt2.txt   # 输入命令                  [20:35:57]
[mt555@localhost Desktop]$ cat mt2.txt    # 再次查看mt2.txt的内容,发现已被mt1.txt的内容覆盖 
123
456
789
0
[mt555@localhost Desktop]$ 

2.采用交互方式将文件mt1.txt复制成文件mt2.txt,

命令为:cp -i mt1.txt mt2.txt

# 首先分别查看mt1.txt和mt2.txt文件的内容
[mt555@localhost Desktop]$ cat mt1.txt                                     [20:06:36]
123
456
789
0
[mt555@localhost Desktop]$ cat mt2.txt                                     [20:06:48]
hello
my name is mt
[mt555@localhost Desktop]$ cp -i mt1.txt mt2.txt     # 输入命令             [20:06:53]
cp:是否覆盖"mt2.txt"? n                         # n代表"否"
[mt555@localhost Desktop]$ cat mt2.txt    # 再次查看mt2.txt的内容            [20:07:26]
hello
my name is mt
[mt555@localhost Desktop]$ cp -i mt1.txt mt2.txt                           [20:07:35]
cp:是否覆盖"mt2.txt"? y                 # y代表"是"
[mt555@localhost Desktop]$ cat mt2.txt    # 此时可看到mt1.txt文件的内容已经覆盖了mt2.txt的内容                                
456
789
0
[mt555@localhost Desktop]$                                                 [20:07:51]

3.将文件mt1.txt复制成mt2.txt,因为目的文件已经存在,所以指定使用强制复制的模式
命令为:cp -f mt1.txt mt2.txt

# 同样先查看一下mt1.txt和mt2.txt文件内容
[mt555@localhost Desktop]$ cat mt1.txt                                     [20:07:51]
123
456
789
0
[mt555@localhost Desktop]$ cat mt2.txt                                     [20:21:56]
hello
my name is mt
[mt555@localhost Desktop]$ cp -f mt1.txt mt2.txt    # 输入命令              [20:22:02]
[mt555@localhost Desktop]$  cat mt2.txt    # 再次查看mt2.txt内容,发现已经被覆盖为mt1.txt的内容了                         
123
456
789
0
[mt555@localhost Desktop]$   

4.将目录m1复制成目录m3
命令为:cp -R m1 m3

[mt555@localhost Desktop]$ cd m1                                           [22:00:09]
[mt555@localhost m1]$ ls                                                   [22:00:16]
t1
[mt555@localhost m1]$ cd ..                                                [22:00:17]
[mt555@localhost Desktop]$ cd m3                                           [22:00:22]
[mt555@localhost m3]$ ls                                                   [22:00:29]
mt3.txt
[mt555@localhost m3]$ cd ..                                                [22:00:32]
[mt555@localhost Desktop]$ cp -R m1 m3                                     [22:00:47]
[mt555@localhost Desktop]$ cd m3                                           [22:01:01]
[mt555@localhost m3]$ ls    # 此时可看到m1被复制到m3                          [22:01:05]
m1  mt3.txt  #这样看可能不是很直观,教你一个命令tree,来看目录结构
[mt555@localhost m3]$ tree . # 就可看到树状目录结构了

5.同时将文件mt1.txt、mt2.txt、mt3.txt与目录m1复制到m2
命令为: cp -R mt1.txt mt2.txt mt3.txt m1 m2

# 先用ls看一下桌面的文件                            
[mt555@localhost Desktop]$ ls                                              [21:40:04]
brackets.desktop  gvim.desktop  m3        mt2.txt   mt3.txt~
firefox.desktop   m1            mt1.txt   mt2.txt~  xfce4-terminal.desktop
gedit.desktop     m2            mt1.txt~  mt3.txt
[mt555@localhost Desktop]$ cp -R mt1.txt mt2.txt mt3.txt m1 m2   # 输入命令 [21:41:41]
[mt555@localhost Desktop]$ cd m2                                           [21:41:59]
[mt555@localhost m2]$ ls                                                   [21:42:21]
m1  mt1.txt  mt2.txt  mt3.txt  t2
[mt555@localhost m2]$ 

6.复制时保留文件属性
命令为:cp -p mt1.txt m3/

[mt555@localhost Desktop]$ cp -p mt1.txt m3/
[mt555@localhost Desktop]$ cd m3
[mt555@localhost m3]$ ls
m1  mt1.txt  mt3.txt
[mt555@localhost m3]$ 

7.复制时保留文件的目录结构
命令为: cp -P /var/tmp/a.txt ./temp/

这里写代码片

8.复制时产生备份文件
命令为: cp -b mt2.txt m3

[mt555@localhost Desktop]$ cp -b mt2.txt m3
[mt555@localhost Desktop]$ cd m3
[mt555@localhost m3]$ ls
m1  mt2.txt  mt3.txt

9.复制时产生备份文件,尾标 ~1~格式
命令为: cp -b -V t mt3.txt /m3

10.指定备份文件尾标
命令为: cp -b -S _bak a.txt /tmp

这里写代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值