在linux中[ln]这个命令用来创建连接文件。

共有两种连接文件:一种是类似与Windows的快捷方式(软链接),另一种就是通过文件系统的inode来产生的新的文件名(硬链接)。

这里解释下什么叫inode。

我们在讲解[ls]命令的时候,说过[-i]这个选项可以查看到该文档的inode。

其中最前面一列的数字就表示inode,它保存了该文档很多信息,其中有一项就是该文件真正内容的指向。

在linux的文件系统中,我们上面看到的Desktop,Documents这些个文件夹中其实并没有真正的保存数据,而只是一个文件档的名字而已。

真正的数据是保存在block中。

这个文件档的inode中记录了该文档的很多信息,包括指向真实保存数据的block信息。

◇硬链接

由于硬链接有不可以垮文件系统,不能为目录创建等限制,因此使用较少。

创建命令 ln 文件名 新连接名

实例

[fuwh@localhost stu]$ ll -i
总用量 4
391838 -rw-rw-r--. 1 fuwh fuwh 58 7月 24 19:11 test.txt
[fuwh@localhost stu]$ ln test.txt test2.txt
[fuwh@localhost stu]$ ll -i
总用量 8
391838 -rw-rw-r--. 2 fuwh fuwh 58 7月 24 19:11 test2.txt
391838 -rw-rw-r--. 2 fuwh fuwh 58 7月 24 19:11 test.txt
[fuwh@localhost stu]$

可以看到这时候,两个文档的inode是一样的,而且连接数也从1变成了2。

这时候,不论修改哪个文档,内容都会一起变。因为他们都是指向同一个block。

但是当你删掉了其中一个文档的时候,是对另一个没有影响。

◇软链接

这个就类似于Windows的快捷方式,使用较多。

使用方式:ln [-sf] 源文件 目标文件

选项:-s 就表示创建软链接了,不加的话就是创建硬链接

     -f 表示存在的时候删除在创建

实例

可以看到,新创建的软连接和源文件的inode是不一样的。

需要注意的是,新链接的大小为5,这刚好就是源文件名的5个字符。而他的名字中,也正确的显示了指向哪个文件。

因为在软链接中,只是保存了指向的文件的名字而已。当编辑软链接这个文件的时候,首先通过指向的文件,找到指向的文件,

然后通过指向文件的inode来找到实体存放的inode,所以我们编辑软链接文件的时候,实际上修改的就是真是存放的block中的内容。

Centos常用命令之:ln的更多相关文章

  1. centos常用命令

    应用程序->附件->终端 一:使用CentOS常用命令查看cpumore /proc/cpuinfo | grep "model name"   grep " ...

  2. CentOS常用命令大全

    一:使用CentOS常用命令查看cpumore /proc/cpuinfo | grep "model name" grep "model name" /pro ...

  3. CentOS常用命令备忘

    1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...

  4. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

  5. 第3章 CentOS常用命令

    一.CentOS常用命令 1.1 文件和目录 # cd /home                        进入 '/home' 目录 # cd ..                       ...

  6. CentOS 常用命令及快捷键整理

    常用命令: 文件和目录: # cd /home                        进入 '/home' 目录 # cd ..                                ...

  7. CentOS常用命令、快照、克隆大揭秘

    不多说,直接上干货! cat是查看文件内容, cp –cp是连目录及件文件都拷贝 cp是拷贝文件 a.txt里的内容是,   abc   def   ghi cat a.txt |grep –v gh ...

  8. Centos 常用命令[持续积累中...]

    CentOS常用到的查看系统命令 uname -a cat /etc/issue /sbin/ifconfig # 查看内核/操作系统/CPU信息 head -n 1 /etc/issue # 查看操 ...

  9. CentOS 常用命令大全(2)

    系统 # uname -a               # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue   # 查看操作系统版本 # cat /proc/cpuinf ...

随机推荐

  1. 移动端Web资源整合

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  2. java 5并发中的阻塞队列ArrayBlockingQueue的使用以及案例实现

    演示一个阻塞队列的使用 public class BlockingQueueTest { public static void main(String[] args) { //创建一个包含三个元素的阻 ...

  3. Hibernate——配置并访问数据库

    Hibernate,对于java来说很重要的一个东西,用于持久层.之前看了很多配置的,都不行,自己来写一个配置成功的. 环境:jdk1.8,eclipse-jee-oxygen,mysql-conne ...

  4. Leetcode 6——ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  5. 201621123057 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...

  6. 20145237 《Java程序设计》第4周学习总结

    20145237 <Java程序设计>第4周学习总结 教材学习内容总结 一. 继承  . 定义:面向对象中,涉及对象过多时容易出现重复行为,为了避免这种情况,就可把重复的部分写成父类,由子 ...

  7. CPP链表示例

    #include<iostream> #include<stdlib.h> using namespace std; typedef struct Student_data { ...

  8. Flask 学习 九 用户资料

    资料信息 app/models.py class User(UserMixin,db.Model): #...... name = db.Column(db.String(64)) location ...

  9. axios封装

    前言 作为出入vue的小萌新,我在写请求的时候,也是毫不犹豫写了ajax,结果肯定是不行的... Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2. ...

  10. 解决SoapFault (looks like we got no XML document)问题

    今天在调试项目的时候出现下面的错误信息: SoapFault looks like we got no XML document (D:\phpStudy\WWW\self.shop.xunmall. ...