iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >如何在Linux中应用ln 命令
  • 377
分享到

如何在Linux中应用ln 命令

2023-06-09 12:06:09 377人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关如何在linux中应用ln 命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POS

这期内容当中小编将会给大家带来有关如何在linux中应用ln 命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

ln 命令用来在文件之间建立链接。在介绍 ln 命令前,让我们先来搞清楚究竟什么是硬链接,什么又是软链接。

Hard Link(硬链接)

我们知道,在 Linux 系统中,每个文件对应一个 inode,文件的内容在存储在 inode 指向的 data block 中。要读取该文件的内容,需要通过文件所在的目录中记录的文件名找到文件的 inode 号,然后通过 inode 找到存储文件内容的 data block(参考《Linux 文件与目录》)。

也就是说,文件名存储在目录中,inode 号执行文件存储的内容,文件名和 inode 之间有一个对应关系。那么多个文件名可不可以同时指向同一个 inode 呢?答案是可以的,这就是硬链接!从本质上来说,硬链接只是在目录下新添加了一个文件名,这个文件名与一个已有文件的 inode 相关联。让我们也通过 /etc/crontab 文件来进行观察:

$ ll -i /etc/crontab131213 -rw-r--r-- 1 root root 722 Nov 16 2017 /etc/crontab

使用 ln 命令在当前目录下创建一个 /etc/crontab 文件的硬链接,然后观察其文件属性:

$ sudo ln /etc/crontab .$ ll -i /etc/crontab crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 /etc/crontab

这两个文件名关联的 inode 号完全相同,都是 131213,所以它们指向的是同一个文件。同时请注意文件属性中的第三个字段,由 1 变成了 2。这个字段被称为 "链接数",它说明有多少个文件名链接到同一个文件的 inode。

另外需要注意的一点是上面所有输出中的第二个字段中的第一位,它们都是 "-",它说明这个文件的类型为普通文件,链接类型为硬链接。

我们可以通过下图来理解硬链接在文件系统中的实现方式:

如何在Linux中应用ln 命令

硬链接的特点

  • 几乎不额外占用空间

  • 只要还有一个文件名引用着文件,文件就不会被真正删除

由于硬链接只是在目录中添加了一条包含文件名和 对应 inode 的记录,所以它几乎不会消耗额外的磁盘容量。
另外在删除硬链接所关联的文件时,其实只是删除了一条目录中的记录,真正的文件并不受影响。只有在删除最后一个硬链接时才会真正删除文件的内容数据。

硬链接的局限性

  • 不能跨文件系统创建硬链接

  • 不能链接目录

由于这两个限制,实际使用中硬链接并没有软链接使用的广泛,下面我们看看究竟什么是软链接。

Symbolic Link(软链接)

软链接的实现方式与硬链接有本质上的不同。创建软链接时会创建一个新的文件(分配一个 inode 和对应的 data block),新文件的 data block 中存储了目标文件的路径。
还拿 /etc/crontab 文件举例子,这次创建一个软链接并查看其文件属性:

$ sudo ln -s /etc/crontab crontab2

如何在Linux中应用ln 命令

第一列,两个文件名对应的 inode 不同,说明这是两个文件。

第二列显示的文件权限也不一样,这一点和硬链接完全不同。注意文件类型被标记为 "l",说明这是一个软链接文件。

第三列很有意思,注意 /etc/crontab 文件的链接数量,还是 2,这和创建软链接文件 crontab2 前是一样的。也就是说创建软链接并不增加原文件的链接数。

第六列是文件大大小,注意新建的软链接文件大小为 12 Bytes,也就是字符串 "/etc/crontab" 的长度。

最后一列会友好的显示出软链接文件指向的源文件。

我们可以通过下图来理解软链接在文件系统中的实现方式:

如何在Linux中应用ln 命令

从上图我们可以看出,软链接文件 crontab2 是一个实实在在的文件,有自己的 inode 和 data block。但是它的 data block 中保存的是目标文件的地址:/etc/crontab。 像 open() 这样的 api 能够识别出软链接,并根据 data block 中的目标文件径把操作重定向到目标文件上。

可以链接目录是软链接的一大优势,创建目录链接的方式和普通文件一样:

$ ln -s /bin testbin

此时进入 testbin 目录和进入 /bin 目录是一样的。

更厉害的是,还可以跨文件系统创建软链接!

删除源文件

对于软链接来说,删除源链接后,链接文件就会无法找到指向的源文件了。看下面的演示:

$ echo "hello world" > hello.txt$ ln -s hello.txt hello2$ cat hello2hello world$ rm hello.txt$ cat hello2cat: hello2: No such file or directory

删除原文件后,操作链接文件时的提示是:"No such file or directory"。

文件的链接数

从上文中的示例我们可以看到,当创建硬链接文件时,文件的链接数会增加 1,而创建软链接时文件的链接数却不发生变化。

下面让我们看一个目录文件的链接数,先创建一个空目录:

$ mkdir /home/nick/testdir$ ll /home/nick | grep testdirdrwxr-xr-x 2 nick nick 4096 Jul 10 08:58 testdir/

新建的空目录有两个硬链接,分别是:

/home/nick/testdir/home/nick/testdir/.

而 /home/nick/testdir 目录下还有一个指向其父目录的硬链接:/home/nick/testdir/..
也就是说当我们创建一个目录时,其父目录的硬链接数会增加 1。

ln 命令

ln 命令用来在文件之间建立链接,其的常用方式为:

ln source targetln -s source target

上述就是小编为大家分享的如何在Linux中应用ln 命令了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网操作系统频道。

--结束END--

本文标题: 如何在Linux中应用ln 命令

本文链接: https://www.lsjlt.com/news/256124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Linux中应用ln 命令
    这期内容当中小编将会给大家带来有关如何在Linux中应用ln 命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POS...
    99+
    2023-06-09
  • 怎么在linux中使用ln命令
    本篇文章为大家展示了怎么在linux中使用ln命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.命令格式: ln [参数][源文件或目录][目标文件或目录]2.命令功能:Linux文件...
    99+
    2023-06-13
  • linux中ln命令怎么用
    小编给大家分享一下linux中ln命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!全称ln 全称是link 顾名思义,这是一个建立一个链接。怎么去理解呢?...
    99+
    2023-06-09
  • linux中的ln命令怎么用
    这篇文章主要为大家展示了“linux中的ln命令怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中的ln命令怎么用”这篇文章吧。Linux ln 命令正如你现在所了解的,ln 命令...
    99+
    2023-06-16
  • Linux中如何使用ln命令在文件之间建立连接
    这篇文章主要介绍“Linux中如何使用ln命令在文件之间建立连接”,在日常操作中,相信很多人在Linux中如何使用ln命令在文件之间建立连接问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中如何使用l...
    99+
    2023-06-12
  • Linux常用命令ln怎么用
    这篇文章给大家分享的是有关Linux常用命令ln怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux常用命令ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个...
    99+
    2023-06-28
  • Linux基础命令ln的用法
    本篇内容主要讲解“Linux基础命令ln的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux基础命令ln的用法”吧!ln为指定的目录或者文件创建链接,如果没有指定链接名,那么会创建一个...
    99+
    2023-06-06
  • Linux的ln命令怎么使用
    这篇文章主要讲解了“Linux的ln命令怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux的ln命令怎么使用”吧!Linux常用命令ln命令 用来为文件创建链接,链接类型分为硬...
    99+
    2023-06-28
  • linux的ln命令使用参数详解
    本篇内容主要讲解“linux的ln命令使用参数详解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux的ln命令使用参数详解”吧!这是linux中一个非常重要命令,请大家一定要熟悉。它的功能...
    99+
    2023-06-13
  • 如何在linux中使用watch命令
    本篇文章为大家展示了如何在linux中使用watch命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,wat...
    99+
    2023-06-13
  • grep命令如何在linux中使用
    grep命令如何在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、grep的语法[]  (man grep查看grep的帮助文档) &nb...
    99+
    2023-06-13
  • chkconfig命令如何在Linux中使用
    这期内容当中小编将会给大家带来有关chkconfig命令如何在Linux中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。chkconfigchkconfig在命令行操作时会经常用到。它可以方便地设置和...
    99+
    2023-06-13
  • history命令如何在linux中使用
    history命令如何在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.使用 HISTTIMEFORMAT 显示时间戳当你从命令行执行 history 命令后...
    99+
    2023-06-13
  • 如何在Linux中使用route命令
    如何在Linux中使用route命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.命令格式:route [-f] [-p] [Comman...
    99+
    2023-06-13
  • 如何在Linux中使用dpkg命令
    如何在Linux中使用dpkg命令?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。dpkg命令是Debian Linux系统用来安装、创建和管理软件包的实用工具。语法dpkg(选...
    99+
    2023-06-13
  • shutdown命令如何在linux中使用
    这期内容当中小编将会给大家带来有关shutdown命令如何在linux中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用...
    99+
    2023-06-09
  • mkdir命令如何在Linux中使用
    mkdir命令如何在Linux中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。linux mkdir用来创建目录,要求创建目录的用户在当前目录中具有写权限,...
    99+
    2023-06-09
  • cut命令如何在linux中使用
    cut命令如何在linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要用到,来mark一下:ubuntu@VM-0-15-ubuntu:~/taoge$ ...
    99+
    2023-06-09
  • tar命令如何在Linux中使用
    tar命令如何在Linux中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。tar 命令可以为linux的文件和目录创建档案。利用 tar,可以为某一特定文件创建档案(备...
    99+
    2023-06-09
  • 如何在linux中使用chkconfig命令
    这篇文章将为大家详细讲解有关如何在linux中使用chkconfig命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用语法:chkconfig[--add][--del][--list]...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作