
3.4 拷贝和剪切
如果需要拷贝文件或目录,可以使用cp命令,cp的语法如下。

如果/path2/yy是一个目录,意思是把/path1/xx拷贝到/path2/yy中。如果/path2/yy不存在或是一个文件,意思是把/path1/xx拷贝到/path2中,命名为yy。
下面的操作都是使用root用户做的,把/etc/hosts拷贝到/opt目录中。

这里/opt是一个目录,那么这句话的意思是把/etc/hosts拷贝到/opt目录中。查看一下/opt中的内容。

把/etc/hosts拷贝到/opt中,命名为xx。

原来并不存在/opt/xx,上面的操作是把/etc/hosts拷贝到/opt中,命名为xx。
看下面的例子。

先创建目录/opt/11,因为/opt/11是一个目录,所以这里是把/etc/hosts拷贝到/opt/11中,而不是把/etc/hosts拷贝到/opt之后命名为11。

因为/opt/xx不是一个目录,所以这句话的意思是把/etc/hosts拷贝到/opt中并命名为xx。因为/opt/xx已经存在了,所以会问是否要覆盖,如果此时直接按【Enter】键,则是n的意思,即不覆盖。如果要覆盖必须输入“y”,按【Enter】键。
拷贝一个文件,相当于新创建了一个文件。除文件的内容相同外,文件的时间显示的也是创建这个文件的时间。

可以看到,时间不一样。
拷贝一个文件时,如果想把文件的属性一起拷贝过去,就需要加上-p选项。

这样看起来,时间也都一致了。
下面用cp命令拷贝目录,把/etc拷贝到当前目录中。

此处没有拷贝成功,因为/etc是一个目录,cp需要加上-r选项才行,-r表示递归的意思。

删除这个etc目录。

记住,不要写成rm -rf /etc/了。
如果拷贝目录,同时想保持目录属性不变,可以用-rp选项,或者-a选项。-a选项中包括一系列其他选项如-r、-p等的功能。

剪切所用的命令是mv,mv的语法如下。

如果/path2/yy是一个目录,意思是把/path1/xx剪切到/path2/yy中。如果/path2/yy不存在或是一个文件,意思是把/path1/xx剪切到/path2中并命名为yy。
把/opt/hosts剪切到当前目录中,命令如下。

mv命令也用于重命名操作,如把/opt下的xx重命名为yy。
