命令-ln-笔记

  • 命令简介
  • 命令用法
  • 软硬两种链接的区别
  • 补充


  • 命令简介
  • 命令名称:ln
  • 命令英文原意:link
  • 命令所在路径:/bin/ln
  • 执行权限:所有用户
  • 语法:ln     -s    [原文件][目标文件]

-s                  创建软链接

原文件         想要生成链接文件的文件

目标文件     对原文件建立链接文件的文件名称

  • 功能描述:生成链接文件
#范例 
$ln  -s    /etc/issue       /tmp/issue.soft


  • 命令用法
  • 软链接
[[email protected] ~]# ln -s /root/1.txt /testdir/1.test
[[email protected] ~]# ll /testdir/
total 4
lrwxrwxrwx. 1 root root 11 Jul 31 19:26 1.test -> /root/1.txt
-rw-r--r--. 1 root root 93 Jul 26 12:18 a.txt
  • 硬链接
[[email protected] ~]# ln 1.text1 /testdir/1.test1
ln: creating hard link `/testdir/1.test1‘ => `1.text1‘: Invalid cross-device link
#创建硬链接失败了。。。报错信息“Invalid cross-device link”
[[email protected] ~]# df 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2        9948012 4403100   5032912  47% /
tmpfs             502068     224    501844   1% /dev/shm
/dev/sda1       40185208   81604  38055604   1% /boot
/dev/sda3        9948012   23212   9412800   1% /testdir
/dev/sr0         3824484 3824484         0 100% /media/CentOS6.8_Final
#查看分区得知/testdir为一个独立的分区,得出结论硬链接不能跨分区
[[email protected] ~]# ln 1.text1 /tmp/1.text1
[[email protected] ~]# ll /tmp/
total 28
-rw-r--r--. 2 root root    0 Jul 31 19:30 1.text1


  • 软硬两种链接的区别
  • 链接文件信息分析
#硬链接
[[email protected] testdir]# ll /tmp/1.text1 
-rw-r--r--. 2 root root 0 Jul 31 19:30 /tmp/1.text1
#软链接
[[email protected] testdir]# ll /testdir/1.test 
lrwxrwxrwx. 1 root root 11 Jul 31 19:26 /testdir/1.test -> /root/1.txt

文件类型+权限

a)文件类型部分(第一个字母)

“-” 表示文件;“d” 表示目录;“l” 表示软链接;

硬链接文件类型是文件“-”

软链接文件类型是链接文件符号“l”

b)权限部分

“r”--表示可读;“w”--表示可写;“x”--表示可执行

硬链接为管理员可读写其他人只有可读权限

软链接为所有人都是完全权限


  • 文件大小分析
#源文件/etc/passwd
[[email protected] opt]# ll -h /etc/passwd
-rw-r--r--. 2 root root 1.7K Jul 26 17:56 /etc/passwd
#链接文件
[[email protected] opt]# ll -h
total 8.0K
lrwxrwxrwx. 1 root root   11 Jul 31 19:59 passwd.1 -> /etc/passwd
-rw-r--r--. 2 root root 1.7K Jul 26 17:56 passwd.2
#软链接文件大小只有11字节,看起来很小,而原文件有1.7k。事实上,哪怕原文件有上千个字节,它的
软链接也差不多还是只有这么大。因为软链接仅仅只是一个符号链接,用于在执行时链接指向原文件而
已,软链接类似Windows快捷方式,可供用户方便快捷的找到一些文件资料或可执行程序或文件文件,方
便规划和管理。只是一个很简单的链接指向,并不是代表真正的文件资料或可执行文件本身。对比硬链
接和原文件会发现,除了文件名所在目录不同之外,其他部分都是一模一样的,包括文件的大小。就类
似于执行了保持文件属性的拷贝(cp -p)一样,包括文件的修改时间都是一致的。

  • 数据增加分析
#查看源文件内容
[[email protected] ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
the telnet is \l
the hostname is \h
#查看软链接内容
[[email protected] ~]# cat /opt/issue.1
CentOS release 6.8 (Final)
Kernel \r on an \m
the telnet is \l
the hostname is \h
#查看硬链接内容
[[email protected] ~]# cat /opt/issue.2
CentOS release 6.8 (Final)
Kernel \r on an \m
the telnet is \l
the hostname is \h
#给源文件添加内容
[[email protected] ~]# vim /etc/issue
[[email protected] ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m
the telnet is \l
the hostname is \h
  
hello word!
#查看软链接文件内容
[[email protected] ~]# cat /opt/issue.1
CentOS release 6.8 (Final)
Kernel \r on an \m
the telnet is \l
the hostname is \h
  
hello word!
查看硬链接内容
[[email protected] ~]# cat /opt/issue.2
CentOS release 6.8 (Final)
Kernel \r on an \m
the telnet is \l
the hostname is \h
  
hello word!
#从上面操作可以看到硬链接文件的内容随着原文件内容的更新而同步更新了,但是软链接的内容好像也
同样更新了,这是因为软链接本身就是一个链接指向而已,它所指向的文件内容就是原文件本身。由于
硬链接的同步更新机制,原文件内容都是会得到相应的更新的,所以在这里看到软链接的内容也有相应
的变化。

  • 文件删除分析

由测试可以得出,删除原文件之后,软链接将找不到链接指向的文件了。同时软链接文件信息中软链接目录和所链接指向的原文件目录都会变成红色,并且文件目录会一直闪烁,访问找不到软链接文件。而硬链接的原文件就算丢失,硬链接文件也依然可以访问。


[[email protected] ~]# cd /opt/
[[email protected] opt]# ll
total 4
lrwxrwxrwx. 1 root root 10 Jul 31 20:49 issue1 -> /etc/issue
#软链接都会有箭头指向源文件的位置
[[email protected] opt]# ls -i /etc/issue ./issue1 ./issue2
135260 /etc/issue  427077 ./issue1  135260 ./issue2
[[email protected] opt]#
#而硬链接与软链接的显著区别在于硬链接与源文件的节点号一样且没有箭头指向源文件




  • 补充:

每一个Linux的文件都有一个i节点,由内核来进行调度和管理。但是在Linux系统中,一个文件一定会有一个i节点,而一个i节点不一定只对应一个文件,硬链接就是一个很特殊的案例,所以当其中一个文件删除后,另外一个文件依旧还可以存在。硬链接不能跨文件系统,也就是不能跨分区和设备。

时间: 2024-12-19 18:47:20

命令-ln-笔记的相关文章

Linux命令学习笔记目录

Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 2.linux命令学习笔记(2):cd命令 3.linux命令学习笔记(3):pwd命令 4.linux命令学习笔记(4):mkdir命令 5.linux命令学习笔记(5):rm 命令 6.linux命令学习笔记(6):rmdir 命令 7.linux命令学习笔记(7):mv命令 8.linux命

小蚂蚁学习Linux(4)——链接命令ln、文件搜索命令locate、whereis和which

链接命令ln    (取自link之意) ln  [源文件]    [目标文件]    功能:生成链接文件.    -s 创建软连接 ,不加是创建硬链接 硬链接的特征: 1. 拥有相同的i节点和存储block快,可以看做是同一个文件. 2. 可通过i节点识别 3. 不能跨分区 4. 不能针对目录使用 备注:硬链接只要不把所有文件名删除,删除其中一个不影响其他文件名的使用. 需要注意的是,不建议只用硬链接: 1. 硬链接太过隐蔽,只能通过查看inode节点id号识别 2. 自身的限制也比较多. 替

Linux 命令ln

在linux中可用ln命令创建一个文件的链接(软链接或者硬链接) 硬链接的使用: ? 1 [email protected]:~# ln 2.txt e.txt ? 1 2 [email protected]:~# ls 1.txt  2.txt  3.txt  4.txt  5.txt  5.txt~  e.txt  test ? 1 2 3 4 5 6 7 8 9 10 11 [email protected]:~# cat 2.txt 在li上,安装软件一共有三种方式: 1.源代码安装 2

Linux下的命令总结笔记(二)

说在前面的话: 本文是以笔记的形式呈现,那么其内容也将会有一个更新的过程.其命令也为亲测内容,大家可以放心使用(蓝色字体部分除外,蓝色部分为未测试或测试后未验证).如果有一些什么问题,可以给我留言. 1.系统相关 uname:获取电脑和操作系统的相关信息 语 法:uname [-amnrsvpio][--help][--version] 补充说明:uname可显示linux主机所用的操作系统的版本.硬件的名称等基本信息 参 数: -a或–all           详细输出所有信息,依次为内核名

linux命令学习笔记-持续更新版

shell 获取前一条命令是否执行成功 if [ $? -eq 0 ];then   echo "success" fi linux命令学习笔记-持续更新版

linux命令学习笔记(35):ln 命令

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在 不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某 个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间. 1.命令格式: ln [参数][源文件或目录][目标文件或目录] 2.命令功能: Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链

linux命令--ln命令

ln命令是为一个文件建立一个同步链接,ln有两种一种是软连接,一种是硬链接.硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置.硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统.软连接类似于当前文件的一个快捷方式,不占用空间,硬链接是当前文件的一个副本,大小是源文件一样,变更都是同步的. 这里有几个要注意的,硬链接不能作用在文件夹上,另外硬链接不能夸文件系统. 例子1 ln a.txt atxtlink ln -s a.t

linux命令学习笔记

操作文件和目录: copy: $ cp file1 file2 $ cp -r dir1 dir2 move: $ mv file .. $ mv file dir/ rename: $ mv file1 file2 $ mv dir1 dir2 # dir2如果存在,则为移动操作 remove: $ rm file $ rm -r dir 创建文件: $ touch a.txt $ >a.txt 创建目录: $ mkdir dir 查看文件: #一般 $ cat file #查看文件类型: $

linux 创建连接命令 ln -s 软连接

这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间.例如:ln -s /bin/less /usr/local/bin/less-s 是代号(symbol

linux 创建连接命令 ln -s 软链接

这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件. 当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间.例如:ln -s /bin/less /usr/local/bin/less-s 是代号(symbol