美文网首页
[Linux]第1周.day3 链接文件,目录和文件通用命令

[Linux]第1周.day3 链接文件,目录和文件通用命令

作者: 哈维Harvey | 来源:发表于2020-04-03 21:29 被阅读0次

个人主页:哈维数据
QQ:1876815991
邮箱:cnharvey@foxmail.com

一、链接文件

1.ln命令

命令名称:ln
英文原意:change file timestamps
所在路径:/bin/ln
执行权限:所有用户
功能描述:在文件之间建立链接
我们的文件的文件名,没有写在I节点中,也没有写在block块中,而是写在上层目录的block块中。
如果我们要查找一个目录,就先在你上层目录里找到I节点然后找到block块,通过访问block找到要查找的文件的I节点,然后进入我们要查找的文件I节点中。
链接,有几种类型

2.硬链接(不常用)

硬链接的使用方法:
root@localhost ~]# ln [源文件名1] [链接文件名2]
硬链接特征:

  • 源文件和链接文件都拥有相同的Inode和Block。
  • 修改一个文件另一个都改变。
  • 删除任意一个文件,另一个文件也能用。
  • 硬链接标记不清晰,很难确定链接位置。不建议使用。
  • 硬链接不能链接目录。
  • 硬链接不能跨分区操作。因为需要指定同一个分区的同一个I节点号,所以没法实现。

备注:
硬链接的链接文件和源文件的inode和block都是一样的,因为他们仅仅是在文件系统中的显示不一样,虽然有两个文件,但是链接的存储地址都是一个位置。所以修改一个,另一个也会被修改。当然,如果删除一个,另一个也同样可以访问存储的内容。
这就像一个房间有两个门,一个叫前门一个叫后门,前门和后门走哪个都能进入这个房间。从后门进入房间在这个房间里放一本书,再从前门进去看,这本书还是存在。而如果把前门堵上,后门还是可以进入这个房间。
硬链接最大的标记是源文件和链接文件是一个I节点号。所以很不容易看出来。

3.软连接(推荐使用)

软连接的使用方法:
root@localhost ~]# ln -s [源文件名1] [链接文件名2]
软连接的特征:

  • 源文件和链接文件拥有的inode是不一样的
  • 修改一个文件,另一个文件也会改变
  • 删除源文件,链接文件就不能用了。但是软连接还会存在,不过会高亮显示错误。
  • 删除软连接,源文件则不受影响。
  • 软连接可以连接目录
  • 软连接可以跨分区
  • 特征明显

备注:
软连接所属的block块中记录的内容不是实际数据,而是源文件的I节点号。软连接中的block中记录的仅仅是指路牌,所以不论源文件多大,软连接的大小都不会有变化。软连接就和Linux中的快捷方式很像。因为软连接的block里面没有数据,所以源文件删除了,数据就删除了,软连接就不能用了。
同时,我们可以用房间来进行解释,但是这个就相对复杂了,我们用一张图片解释
我们在访问软连接文件的时候,会进入软连接的block,软连接的block中记录了怎么到达房间的方法(原文件的inode),引导我们进入房间。我们进入房间后,放一本书,同样从源文件进入也能看到这本书。但是如果我们把源文件删除了,留下来的软连接只是一个没有出口的大厅,房间内的东西也被删除了。
软链接的权限:
软连接的权限是最大权限,大家都可以访问软连接,但是要明确,软连接的权限仅仅是代表了软连接文件的权限是最大的。而不代表源文件也拥有了最大权限,这就像公交站,公交路线大家都可以看,但是不代表所有人都可以修改公交路线。
软连接一定要写绝对路径,因为软连接是通过绝对路径来找到原文件的!!!!
链接是我们在管理linux系统的时候照顾我们使用习惯所设置的一个功能。

二、目录文件通用命令

1.rm命令(删除)

root@localhost ~]# rm [选项] 需要删除的文件或目录
命令名称:rm
英文原意:remove files or directories
所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件或目录

选项 作用
-f 强制删除(force)
-i 交互删除,删除前会询问
-r 递归删除,可以删除目录(谨慎使用)

2.cp命令(复制)

root@localhost ~]# rm [选项] [源文件] [目标文件]
命令名称:cp
英文原意:copy files and directories
所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录,如果目标文件名更改,则视为重命名复制操作。

选项 作用
-a 相当于-dpr
-d 如果源文件为软连接(硬链接无效)。则复制出的目标文件也是软链接
-I 询问,如果目标文件存在,则会询问是否覆盖
-p 复制后目标文件保留源文件属性(所有者、所属组、权限、时间)
-r 递归复制

平时完全可以使用-a来作为日常使用。只要加了-a选项,目标文件和源文件会一摸一样。

3.mv命令(剪切/改名)

root@localhost ~]# mv [选项] [源文件] [目标文件]
命令名称:mv
英文原意:move (rename) files
所在路径:/bin/mv
执行权限:所有用户
功能描述:移动文件或者改名

选项 作用
-f 强制覆盖,如果目标文件存在也不会询问
-i 询问用户是否覆盖,如果目标文件已经存在,则询问用户是否覆盖
-v 显示详细信息

mv命令的参数一般来讲不太常用,而且不需要递归操作。

相关文章

网友评论

      本文标题:[Linux]第1周.day3 链接文件,目录和文件通用命令

      本文链接:https://www.haomeiwen.com/subject/csrlphtx.html