首页 > 编程笔记

Linux cp命令:复制文件

cp 是 Copy 的简写,cp 命令用于复制文件或目录。

cp 命令的格式如下:

# cp 选项 源文件或目录 目标文件或目录

下面列出几个 cp 命令中使用频率较高的选项进行说明,同样,短选项也可以多个一起使用。
下面的示例是对以上选项用法的详细演示,注意查看显示结果。
#将/opt目录下所有的txt文件复制到/opt/test1目录下,test1目录是空目录
[root@localhost opt]# cp /opt/*.txt /opt/test1
[root@localhost opt]# ls /opt/test1
1.txt  2.txt  a.txt  b.txt  x.txt  y.txt  z.txt

#使用选项“-i”,即目标文件存在,覆盖时给出提示
[root@localhost opt]# cp -I /opt/*.txt /opt/test1
cp:是否覆盖"/opt/test1/1.txt"?
……

#使用选项“-f”,即目标文件存在,覆盖时不提示。执行时发现还是会提示,这是因为默认有个
别名记录,应先使用unalias命令取消别名记录后再执行
#查看别名记录
[root@localhost opt]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias |/usr/bin/which --tty-only --read-alias --show-dot
--show-tilde'
#使用unalias命令取消cp的别名记录,发现cp命令默认就是使用“cp -i”
[root@localhost opt]# unalias cp
#再次使用“cp -f”时就不会有提示了
[root@localhost opt]# cp -f /opt/*.txt /opt/test1

#使用“-r”选项将整个/opt/test1目录复制到/opt/test2目录下,注意格式,即test2后面一定记得接上“/”才是复制到test2目录下,如果后面不接“/”,则表示复制test1后重命名为test2
[root@localhost opt]# cp -rf /opt/test1 /opt/test2/
[root@localhost opt]# ls /opt/test2/
test1

#复制时接上选项“-p”,可以保持源文件属性不变。先使用ls命令查看文件的时间标记,复制后再查看时间标记时会发现没有发生变化,表示复制时源文件的属性保持不变
#ls查看源文件的时间标记
[root@localhost opt]# ls -lh /opt/2.txt
-rw-r--r--. 1 root root 0 12月  2 22:06 /opt/2.txt
#不使用选项“-p”复制后发现时间发生了改变
[root@localhost opt]# cp        /opt/2.txt      /opt/test3/
[root@localhost opt]# ls -lh /opt/test3/2.txt
-rw-r--r--. 1 root root 0 12月  4 21:27 /opt/test3/2.txt
#使用选项“-p”复制后发现时间和原来的时间保持一致
[root@localhost opt]# cp -p /opt/2.txt  /opt/test2
[root@localhost opt]# ls -lh /opt/test2/2.txt
-rw-r--r--. 1 root root 0 12月  2 22:06 /opt/test2/2.txt

推荐阅读