cp copy拷贝文件
cp语法:cp 源 目标
源为文件,如果目标不存在则默认创建相同文件
如果目标存在,目标为文件,则原有文件被覆盖
如果目标存在,目标为目录,则将源文件加入目录
源为目录,如果目的不存在则默认创建同名的目录
如果源是目录,则需要使用-r选项。
由于源文件为目录,系统默认拒绝复制目录
加上-r的选项
-a的选项 效果是归档
默认拷贝动作会将源文件的属主和属组更改为操作用户
为了在拷贝的时候保持文件的属组和属主,需要用到-p(小写)选项
现在/tmp下已经有了一个test的文件
再次执行拷贝命令
这个时候系统就会询问是否需要覆盖原有文件,本次操作的是root用户,如果是普通用户就会直接覆盖,所以拷贝文件的时候最好带有-i的选项用于交互功能。
Linux中有一个文件类型叫做链接文件
如果源文件是链接文件会有什么效果呢?
文件大小变了,源文件的大小是14字节 ,拷贝目标文件是38字节。
看看systemlease指向的文件的信息
大小为38字节。说明默认情况下,如果源文件是链接文件,系统会将真实文件的内容+源文件的文件名称送到目标目录中,而且通过操作发现,目标文件的文件类型发生了变化,之前的文件类型是l 现在的文件类型是-。
通过-P(大写)=-d选项拷贝文件
源文件的链接文件属性保留了,大小也没有变化。
还可以使用--preserve= 长选项代替-p(小写),--preserve可以更灵活一些,因为它可以指定保留哪些文件属性。
-p是所有属性都保留了。
以上命令只保留了权限和所有关系,时间戳没有保留,所以日期不一样
默认情况是mode,ownership,timestamps 都有的。
-f的参数是不询问直接拷贝,如果有同名文件也不理会,也不提示。
本文转自 yueyue207 51CTO博客,原文链接:http://blog.51cto.com/yueyue207/2048880