Linux的链接文件-ln命令

Linux的链接文件

  使用ln命令来创建链接文件(link)

Linux链接分两种:硬链接(Hard Link),符号链接(Symbolic Link)

  默认情况下,ln命令产生硬链接。

[[email protected] lianxi]# ln  -s  xiaotong   tongtong    #符号链接才能为目录建立链接

源文件     目标文件(链接文件)

[[email protected] lianxi]# cd tongtong/

[[email protected] tongtong]# pwd

/lianxi/tongtong

[[email protected] tongtong]# pwd -P   显示tongtong目录所在的真正的路径

/lianxi/xiaotong

1、硬链接(Hard Link) 

命令格式:

  ln 源文件… 链接文件

硬连接指通过索引节点来进行连接:一个inode号对应多个文件名(一个文件有多个不同的文件名)

作用:

  允许一个文件拥有多个有效路径名,建立硬连接,以防止“误删”的功能。

#####文件真正删除的条件是与之相关的所有硬连接文件均被删除。

硬连接的2个限制:

①指向原始文件对应的数据存储位置,不能为目录建立硬链接文件

②硬链接与原始文件必须位于同一分区(文件系统)中

2、软链接(Symbolic Link)符号链接:

命令格式:

  ln -s  源文件… 链接文件

-s, --symbolic    make symbolic links instead of hard links

一个文件链接到另外一个文件 (类似于Windows的快捷方式)soft

指向原始文件所在的路径(软链接源文件用绝对路径,但用相对路径较好)

原理:

  软连接文件实际上是一个特殊的文本文件,其中包含的有另一文件的位置信息。

允许符号链接(经常简写为symlinks)指向位于其他分区、甚至是其他网络硬盘上的某个文件。

[[email protected] lianxi]# touch test              #创建一个测试文件test
[[email protected] lianxi]# ln test H_test         #创建test 的一个硬连接文件H_test 
[[email protected] lianxi]# ln -s test S_test     #创建test 的一个符号连接文件S_test
[[email protected] lianxi]# ls -li           # -i参数显示文件的inode节点信息

total 0

262146 -rw-r--r-- 2 root root 0 Feb 21 23:31 test

262146 -rw-r--r-- 2 root root 0 Feb 21 23:31 H_test

262196 lrwxrwxrwx 1 root root 4 Feb 21 23:31 S_test -> test

分析:硬连接文件H_test 与原文件test的inode节点相同,均为262146,然而符号连接文件的inode节点不同。

[[email protected] lianxi]# echo "I am test file">>test

[[email protected] lianxi]# cat test

I am test file

[[email protected] lianxi]# cat H_test

I am test file

[[email protected] lianxi]# cat S_test

I am test file

[[email protected] lianxi]# rm -f test

[[email protected] lianxi]# cat H_test

I am test file

[[email protected] lianxi]# cat S_test

cat: S_test: No such file or directory

分析:当删除原始文件test后,硬连接H_test不受影响,但是符号连接S_test文件无效

总结:

  ①删除原文件,对硬连接文件没有影响,导致符号连接文件(依赖与源文件)失效;

  ②删除符号连接文件,对源文件、硬链接文件无影响;

  ③删除硬连接文件,对源文件、符号连接文件也无影响;

  ④同时删除原文件和硬连接文件,整个文件会真正的被删除。建立硬链接文件起到一定的备份作用。

#####修改任意文件内容,其他链接文件相应的都会被修改

时间: 2024-10-06 00:45:17

Linux的链接文件-ln命令的相关文章

linux下添加链接与删除链接(ln命令的用法)

添加链接使用ln命令用法:#ln --help用法:ln [选项]... 目标 [链接名]或:ln [选项]... 目标... 目录或:ln [选项]... --target-directory=目录 目标...创建连至指定<目标>的链接,并可选择性指定<链接名>.如果没有指定<链接名>,会在目前的目录中创建一个和<目标>名称一样的链接.当使用第二种格式而<目标>多於一个时,最后的参数必须是目录:这样会在指定的<目录>中分别创建连至每

Linux的链接文件

Linux的链接文件======================================== Linux的链接文件分为硬链接文件(hard link )和软链接文件( symbolic link ) 注意:硬链接有两个限制:(1)不能跨文件系统,(2)不能链接目录 ln 命令格式:ln [-s] [来源文件] [目的文件]不加-s选项就是硬链接加上-s选项就是建立软链接 示例:硬链接[[email protected] tmp]# mkdir ln[[email protected] t

Linux下远程文件传输命令——scp

SCP- secure copy (remote file copy program) 命令原型:  scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[[email protected]]host1:]file1 ... [[[email protected]]host2:]file2 命令描述: scp用于通过网

Linux学习日志--文件搜索命令

开头总结: 学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的区别和用法格式,什么是path环境变量以及其好处,whereis和which的用法,区别在于查询系统命令内容的不同,grep和find的区别,为什么要引入通配符? 什么情况下用通配符还是正则表达式? Locate文件搜索命令: 1)格式: Locate [文件名] 2)更新数据库 updatedb 好处: 相对于find命令来说,Loca

linux查看日志文件内容命令tail、cat、tac、head、echo详解

linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------------------------linux 如何显示一个文件的某几行(中间几行) 从第3000行开始,显示1000行.即显示3000~3999行cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行cat filename| head -

[转]linux查看日志文件内容命令

linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------------------------linux 如何显示一个文件的某几行(中间几行) 从第3000行开始,显示1000行.即显示3000~3999行cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行cat filename| head -

Linux磁盘和文件系统管理(6)_链接文件 ln

文件系统上的链接文件: hard link 硬链接:    多个路径指向同一个inode 当指向一个inode的多个路径时,创建文件的硬链接时会增加inode的引用计数: 当删除硬链接时,仅是删除一个访问路径,文件还存在,inode和block还是存在的,只有删除最后一个路径时,将找不到文件了.   注意: 硬链接不能对目录进行:    硬链接不能跨分区进行         symbolic link 符号链接:相当于快捷方式      链接文件的数据指向另一个文件路径,只是利用这个文件作为指向

linux下find(文件查找)命令的详解

文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在

linux基本命令之文件处理命令

基础命令: 格式: 命令 [-选项] [参数] 如: ls  -l  /etc -       rw-      r--       r-- 文件类型  所有者权限  所在组权限  其他人权限 -:  -二进制 d目录 l链接 rwx :读写执行 ls:显示目录文件 -a 所有文件 -l  详细显示 -h  显示大小按K计算 -ld查看某个目录的详细信息,而不查看其子目录 -i 查看目录文件的i节点 唯一的ID mkdir:创建目录 -p 递归选项 cd:切换目录 pwd:显示当前目录 rmdi