现在的位置: 首页 > 综合 > 正文

每天一个LInux命令(cp)

2020年02月12日 综合 ⁄ 共 2445字 ⁄ 字号 评论关闭

提示:文章的撰写是从应用以及原理入手的!

=========================================================================

cp命令主要功能:用于复制文件或目录!

参数的说明穿插在实际应用中!

对比相应的差异性!

(1)基础

格式一: cp [options] source dest

说明1:source--->源文件;dest---->目标文件或目录

------------------------------------------------------------------------------

应用1:cp file1name file2name---->复制时改名

关注点1:目标文件是否存在,引申出参数i(interactive)--->以免错误覆盖!

含义:i--->interactive交互询问,即覆盖原有文件内容时对用户进行提示!但是该用户对此文件一定要有写入(w)的权力!

目标文件不存在:当前用户会创建此目标文件(前提是当前用户对该文件所在的目录有w权限),查看文件的权限和用户组等信息!

目标文件存在时:当前用户会将目标文件的内容覆盖(并没有创建文件,前提是当前用户对该文件有w权限),查权限和用户组信息!

关注点2:如果目标文件存在,但是不能打开,即用户没有写入(编辑---w)的权力,怎么办?引申出f参数

含义:f--->force(强制),即尝试删除已经存在的目标文件然后重新尝试操作!

为什么说尝试删除呢?因为如果当前用户对文件所在的目录也没有w的权限,就没有办法删除!

如果尝试删除成功意味着------>会新建目标文件(看权限和属性)!

重申一遍:目录的w表示(对文件名列表的异动)

补充:这里为什么会提示覆盖呢?这是因为命令别名(root)造成的,-i表示交互式,如果不想提示则目录起始点使用反斜杠

---------------------------------------------------------------------------

应用2:cp filen1ame directory

功能:将单个文件复制到目录中

注意:目录不存在则错误(cp命令并不能创建目录),通过命令回传码和提示信息来判断!

================================================

格式二: cp [options] source... directory

说明:将一个或多个【源文件或者源目录】复制到指定的目录中

------------------------------------------------------------------------------------

应用1:cp -r directory1 directory2

思考:多个源文件可以用{filename,dirname}来代替吗?

r同R---->recursive(递归)---->参数3

应用2:cp file1 file2 file3 directory

功能:将多个源文件复制到指定的目录中(最后一个参数必须是目录)!

思考:多个源文件可以用{filename1,filename2}来代替吗?

===================================分割线========================================

(2)进阶

需求1备份

d:源文件为软连接(Windows系统中的快捷方式--->对硬连接无效),则复制的出的目标文件也是软连接---->复制时保留链接!

p:复制后目标文件保留源文件(任意文件类型)的所有属性(所有者、所属组、权限、时间)!

r:递归复制,主要是复制目录!

等效:a=pdr

注意:root用户和普通用户的操作有一定的区别!

================================================================================

需求2建立软链接

-s:make symbolic links instead of copying

特点:把目标文件建立为源文件的软链接文件,而不是复制源文件!

需求3建立硬链接

-I:把目标文件建立为源文件的链接文件,而不是复制源文件!

总结:d、l、s的区别------>源文件的类型不同(d--->源文件是链接文件;ls--->源文件只需是普通文件)!

测试:对源文件(软链接)进行复制加d与不加d的区别?

不加d:实际复制的是软链接所指向的源文件,而不是软链接文件本身!

加d:则会复制软链接文件本身

======================================

需求4:-L、-P参数的含义

说明:在Linux中cp不加参数的话默认相当于--->cp -L

功能:如果复制的源文件是一个软链接,则复制链接所指向的源文件而不是链接本身

--------------------------------------------------------------------

说明:想复制链接本身----->cp -P

功能:保留了文件之间的软链接属性,对复制一个包含软链接和软链接指向的文件很有用(否则为空)!

需求5:显示移动过程

-v---->verbose(详细的移动信息)

deference----->间接引用!

需求6:命令格式为:cp -u 源文件 目标文件

特点:用在更新文件时,只有源文件比目标文件新时,才会将源文件复制给目标文件,否则即使执行了命令,也不会执行复制。

===========================================================

(3)高阶

复制文件到多个目录

文件操作命令 cp、mv、rm 底层原理

linux ls cp等命令的-H/-L参数

以上就上有关每天一个LInux命令(cp)的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。

抱歉!评论已关闭.