系统小窝欢迎您

电脑公司 深度技术
当前位置:系统小窝 > 系统教程 > 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等。

相关文章

  • Ubuntu如何修改命令提示符PS1

    Ubuntu如何修改命令提示符PS1

    Ubuntu在使用命令的时候,有时需要修改命令提示符PS1,可很多人并不知道如何修改PS1,下面小编就给大家介绍下Ubuntu如何修改命令提示符PS1,一起来学习下...
    2015-01-13 05.01.54
  • Linux使用blockdev命令调整文件预读大小的方法

    Linux使用blockdev命令调整文件预读大小的方法

    我们在使用过程中,可以对一些文件选择预读,这可以加快我们的工作效率。不过有时遇到一些较大的文件,就会导致我们的预读不全,那么这个问题该怎...
    2015-04-23 04.04.14
  • Linux系统使用命令行执行php文件传参的步骤

    Linux系统使用命令行执行php文件传参的步骤

    Linux用户们经常会遇到php文件,面对这些php文件,我们有时会使用命令行执行php文件进行传参。不过具体该怎么操作呢?今天小编就来给大家讲解一下Linu...
    2015-05-21 04.05.05
  • linux如何使用umount命令强制卸载文件系统

    linux如何使用umount命令强制卸载文件系统

    对于Linux系统下挂载的文件系统,通常情况下是无法卸载的,可通过命令进行强行卸载,下面小编就给大家介绍下Linux使用umount命令强制卸载文件系统的方法...
    2015-06-10 05.06.00
  • Linux通过命令行发邮件的步骤

    Linux通过命令行发邮件的步骤

    在Linux系统可通过命令行自由发送邮件,使用sendmail函数、php mail函数就能实现,如果你没有sendmail函数则需要在Linux系统安装sendmail,下面小编就给大家介绍...
    2015-06-18 11.06.02

发表评论

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

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