2024年10月Linux ln命令操作指南(2)

发布时间:

  ⑴如果修改档案的内容,源文件和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

  ⑻ -rw-r--r-- root root Jan : /tmp/file

  ⑼# ls -lhi /tmp/hard_link

  ⑽ -rw-r--r-- root root Jan : /tmp/hard_link

  ⑾# cat /tmp/hard_link

  ⑿hard link test

  ⒀# echo “hard link test ” 》 /tmp/file

  ⒁# cat /tmp/file

  ⒂hard link test

  ⒃# cat /tmp/hard_link

  ⒄hard link test

  ⒅# echo “hard link test ” 》 /tmp/hard_link

  ⒆# cat /tmp/file

  ⒇hard link test

  ⒈# cat /tmp/hard_link

  ⒉hard link test

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

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

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

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

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

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

  ⒐# rm /tmp/file

  ⒑# cat /tmp/file

  ⒒cat: can’t open ‘/tmp/file’: No such file or directory

  ⒓# cat /tmp/hard_link

  ⒔hard link test

  ⒕# ls -hli /tmp/hard_link

  ⒖ -rw-r--r-- root root Jan : /tmp/hard_link

  ⒗. 为目录创建symbolic link?

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

  ⒙# mkdir /tmp/directory

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

  ⒛# ls -hdi /tmp/directory/

  ① /tmp/directory/

  ②# ls -hdi /tmp/dir_sym_link/

  ③ /tmp/dir_sym_link/

  ④# touch /tmp/directory/file

  ⑤# ls -hil /tmp/directory/file

  ⑥ -rw-r--r-- root root Jan : /tmp/directory/file

  ⑦# ls -hil /tmp/dir_sym_link/file

  ⑧ -rw-r--r-- root root Jan : /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

  Ⅳ. 为目录创建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等。