软链接和硬链接到底有啥作用和区别呢_玉溪硬盒和软盒的区别

软链接和硬链接到底有啥作用和区别呢_玉溪硬盒和软盒的区别前言:在网上搜索了好久,看了很多博客,某度知道等等。关于软硬链接的解释都太模糊,还有什么i节点,跨分区根本弄不明白,在查阅了书籍和询问老师后决定自己写一篇简单的博文,然初学者都能够明白的博文。一建立软链接和硬链接的语法软链接:ln-s源文件目标文件硬链接:ln源文件目标文件源文件:即你要对谁建立链接二什么是软链接和硬链接1,软链接可以理解成快捷方式。它和wind

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

前言:在网上搜索了好久,看了很多博客,某度知道等等。关于软硬链接的解释都太模糊,还有什么i节点,跨分区根本弄不明白,在查阅了书籍和询问老师后决定自己写一篇简单的博文,让初学者都能够明白的博文。

一 建立软链接和硬链接的语法

软链接:ln -s 源文件 目标文件
硬链接:ln 源文件 目标文件
源文件:即你要对谁建立链接

二 什么是软链接和硬链接

1,软链接可以理解成快捷方式。它和windows下的快捷方式的作用是一样的。
2,硬链接等于cp -p 加 同步更新。

为了方便说明,我在根分区(/)下建立test文件夹,然后新建了一个jys文件
这里写图片描述
建立软链接和硬链接:
这里写图片描述

区别: 软链接文件的大小和创建时间和源文件不同。软链接文件只是维持了从软链接到源文件的指向关系(从jys.soft->jys可以看出),不是源文件的内容,大小不一样容易理解。
硬链接文件和源文件的大小和创建时间一样。硬链接文件的内容和源文件的内容一模一样,相当于copy了一份。
这里写图片描述

但是简单的copy的文件创建文件的时间应该是复制文件时的时间,肯定不会像硬链接那样和创建源文件的时间相同。你想的没错。
这里写图片描述
但是只要加一个选项-p,时间就一样了
这里写图片描述
这里写图片描述
那么cp -p的文件是不是就相当于硬链接了呢?其实不然,对于源文件的内容有修改,硬链接文件会同步更新修改,始终保持和源文件的内容相同,而复制的文件则不可能做到这一点。
这里写图片描述
所以,硬链接等于cp -p加同步更新。
软链接像快捷方式,方便我们打开源文件,这一点在windows中深有体会,那硬链接有哪些应用呢?
在多用户的操作系统里,你写一个脚本,程序等,没有完成,保存后等下次有时间继续写,但是其他用户有可能将你未写完的东西当成垃圾清理掉,这时,你对你的程序,脚本等做一个硬链接,利用硬链接的同步更新,就可以防止别人误删你的源文件了。

三 删除源文件对软链接和硬链接的影响

这里写图片描述
查看软链接文件,查看的文件不存在。和windows一样,删除源文件,快捷方式也用不了。但是删除源文件,为什么硬链接文件还可以查看呢?
这里要简单说下i节点了。i节点是文件和目录的唯一标识,每个文件和目录必有i节点,不然操作系统就无法识别该文件或目录,就像没有上户口的黑户。linux操作系统是不识别这些字母的,像这些jys ,jys.hard操作系统根本不知道是什么玩意。
这里写图片描述
可以看出硬链接文件和源文件i节点号相同,并且一个i节点可以对应多个文件名。
这里写图片描述
如图,删除了jys,只是删除了从920586到jys的映射关系,不影响它和jys.hard的映射关系。此图也解释了硬链接的同步更新,对源文件修改,操作系统只认i节点,于是操作系统就将修改内容写进所有i节点相同名字不同的文件。写到这里我突发奇想,如果对硬链接文件进行修改那么源文件会不会同步更新呢?留给读者自己试验吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187468.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm django环境搭建_宝塔Linux怎么搭建asp程序

    pycharm django环境搭建_宝塔Linux怎么搭建asp程序今天来简单总结一下使用Pycharm和Django来搭建一个最简单的PythonWeb应用(就是我们所说的‘HelloWorld’)。在这里,我们首先假设已经安装好了Python(2.x和3.x版本均可)。安装Django  无论是Python2.x还是Python3.x版本,都可以使用pip来安装Django。在控制台使用如下命令:pipinstalldjango安装成功后,在i

    2022年8月28日
    3
  • pycharm运行python文件_用pycharm打包py程序

    pycharm运行python文件_用pycharm打包py程序问题描述:本人使用pycharm一直是只运行main.py文件,如果新建一个.py文件,无法对运行它。点击运行按钮,只运行main.py文件今天心血来潮决定解决这个问题,于是新建了000.py看到main右边有一个下三角,点开后找不到000.py就像现在找不到123.py一样在网上百度了一通,未果。偶然发现右键点击文件列表里的文件,可以运行000.py点击以后即可运行可以发现main.py的main变成了浅色的000这个时候点击下三角符号即可看到000.py原来是运行过一次后,

    2022年8月26日
    4
  • JS break和continue的区别

    JS break和continue的区别break和continue都是用来控制循环结构的,主要是停止循环。break       有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。  这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。for(vari=0;i<5;i++){if(i%2!=0){break;//结束…

    2022年5月5日
    70
  • Redis的五种数据结构的底层实现原理

    Redis的五种数据结构的底层实现原理

    2021年4月10日
    120
  • Java 定时任务实现原理详解[通俗易懂]

    在jdk自带的库中,有两种技术可以实现定时任务。一种是使用Timer,另外一个则是ScheduledThreadPoolExecutor。下面为大家分析一下这两个技术的底层实现原理以及各自的优缺点。一、Timer1.Timer的使用classMyTaskextendsTimerTask{@Overridepublicvoidrun(){…

    2022年4月10日
    64
  • C语言背包问题

    C语言背包问题0/1背包问题一个旅行者有一个最多能装MM公斤的背包,现在有nn件物品,它们的重量分别是W1,W2,…,WnW1,W2,…,Wn,它们的价值分别为C1,C2,…,CnC1,C2,…,Cn,求旅行者能获得最大总价值。【输入】第一行:两个整数,MM(背包容量,M<=200M<=200)和NN(物品数量,N<=30N<=30);第2..N+12..N+1行:每行二个整数Wi,CiWi,Ci,表示每个物品的重量和价值。【输出】仅一行…

    2022年7月14日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号