美文网首页
[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