系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux ln命令操作指南

时间:2021-04-09    来源:般砖的    人气:

ln是Linux系统中一个重要的命令,能够为文件建立链接,保持链接文件的同步性,下面小编就给大家介绍下Linux下如何使用ln命令,通过实例来详细了解。

1. 使用ln命令给档案创建symbolic link。

linux系统下的symbolic link类似于windows系统的快捷方式一样。

使用ls命令查看,可以看到新创建的symbolic link有独立的inode,也就是symbolic link会占用一个inode,但是其实际内容仍然是指向

源文件所指向的block区域。

# touch /tmp/file

# ls -lhi /tmp/file

3441 -rw-r--r-- 1 root root 0 Jan 1 00:09 /tmp/file

#

# ln -fs /tmp/file /tmp/symbolic_link

# ls -lhi /tmp/symbolic_link

3647 lrwxrwxrwx 1 root root 9 Jan 1 00:10 /tmp/symbolic_link -》 /tmp/file

#

2. 删除symbolic link文件,实际上就是删除这个inode,而不会影响到源文件所指向的block区域;

而如果删除了源文件,那这个symbolic link文件就基本上没用了。

# echo ;link test; 》 /tmp/file

# cat /tmp/file

link test

#

# rm /tmp/symbolic_link

# cat /tmp/file

link test

#

# ln -fs /tmp/file /tmp/symbolic_link

#

# rm /tmp/file

# cat /tmp/symbolic_link

cat: canlsquo;t open rsquo;/tmp/symbolic_linklsquo;: No such file or directory

#

# ls -lhi /tmp/symbolic_link

7357 lrwxrwxrwx 1 root root 9 Jan 1 00:22 /tmp/symbolic_link -》 /tmp/file

#

3. 使用ln命令创建hard link。

可以看到,创建hard link是使用同一个inode,而copy了一份源文件的block区域出来。

 

如果修改档案的内容,源文件和hard link文件对应的block区域内容都会被修改,从而保持一致性。

# touch /tmp/file

# echo ;hard link test; 》 /tmp/file

# cat /tmp/file

hard link test

# ln /tmp/file /tmp/hard_link

# ls -lhi /tmp/file

7996 -rw-r--r-- 2 root root 15 Jan 1 00:25 /tmp/file

# ls -lhi /tmp/hard_link

7996 -rw-r--r-- 2 root root 15 Jan 1 00:25 /tmp/hard_link

# cat /tmp/hard_link

hard link test

#

# echo ;hard link test 2; 》 /tmp/file

# cat /tmp/file

hard link test 2

# cat /tmp/hard_link

hard link test 2

#

# echo ;hard link test 3; 》 /tmp/hard_link

# cat /tmp/file

hard link test 3

# cat /tmp/hard_link

hard link test 3

#

4. 删除hard link或者删除源文件,实际上只是删除其中其中一份block区域。

可以看到,虽然源文件被删除(实际上只是删除了源文件对应的block区),但是

inode仍然还在,所以仍然可以透过hard link档案来访问源文件的内容。

到了这里,就可以理解为什么inode信息中不包含文件名了;

因为如果文件名信息包含在inode中,并且创建了hard link,此时为何还需要两块不同的block区域

来储存文件信息呢?进而hard link还有什么意义呢?

# rm /tmp/file

# cat /tmp/file

cat: canrsquo;t open lsquo;/tmp/filersquo;: No such file or directory

#

# cat /tmp/hard_link

hard link test 3

#

# ls -hli /tmp/hard_link

7996 -rw-r--r-- 1 root root 17 Jan 1 00:29 /tmp/hard_link

#

5. 为目录创建symbolic link?

因为新建的symbolic link目录与源目录是同一个inode,所以对这两个目录的访问具有完全相同的表现。

# mkdir /tmp/directory

# ln -fs /tmp/directory/ /tmp/dir_sym_link

#

# ls -hdi /tmp/directory/

14018 /tmp/directory/

# ls -hdi /tmp/dir_sym_link/

14018 /tmp/dir_sym_link/

#

# touch /tmp/directory/file

# ls -hil /tmp/directory/file

14781 -rw-r--r-- 1 root root 0 Jan 1 00:47 /tmp/directory/file

# ls -hil /tmp/dir_sym_link/file

14781 -rw-r--r-- 1 root root 0 Jan 1 00:47 /tmp/dir_sym_link/file

#

# echo ;directory symbolic test; 》 /tmp/dir_sym_link/file

# cat /tmp/dir_sym_link/file

directory symbolic test

# cat /tmp/directory/file

directory symbolic test

#

6. 为目录创建hard link?

从结果看,为目录创建hard link失败了。

# ln /tmp/directory/ /tmp/dir_hard_link

ln: /tmp/dir_hard_link: Operation not permitted

上面就是Linux使用ln命令的方法介绍了,本文一共介绍了ln命令的六个实例,可以知道ln命令可以创建hard link,为目录创建symbolic link等。

相关文章

  • 如何使用chown命令改变Linux文件的所有者

    如何使用chown命令改变Linux文件的所有者

    Linux命令中,chown命令可改变文件的拥有者,一般作为系统的管理员才会使用这个命令,一般的用户是没有权限使用的,下面小编就给大家详细介绍下chown命...
    2021-04-09 08.04.22
  • Linux lnmp下无法使用mail发邮件如何解决?

    Linux lnmp下无法使用mail发邮件如何解决?

    Linux系统在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,遇到这个问题该如何解决呢?其实有两种方法,一是使用sendmail组件,而是使用postfix,具...
    2015-06-29 11.06.18

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。