Linuxハードリンクとソフトリンク(シンボルリンク)


【ハードリンク(Hard Link)】
ハードリンクとは、インデックスノードを介して接続され、Linuxがファイルシステムであり、ディスクパーティションに保存されているファイルには、どのタイプでもインデックスノード番号と呼ばれる番号が割り当てられます.ハードリンクとは、Linuxで複数のファイル名が同じインデックスノードを指す.一般的な用途:ハードリンクを重要なファイルに確立することによって、誤削除を防止し、削除は実際にはその中のハードリンクを削除することに対応し、ファイルに対応するハードリンクが削除された場合、このファイルは本当に削除されます.注:デフォルトでは、lnコマンドはハードリンクを生成します.
[root@centos7 home]# vi 1.txt
hello, this is 1.txt!
[root@centos7 home]# cp -l 1.txt 2.txt #  1.txt     2.txt,   ln 1.txt 2.txt
[root@centos7 home]# more 2.txt #   2.txt       1.txt      
hello, this is 1.txt!
#            ,         :
[root@centos7 home]# ls -li
    69868
33845219 -rw-r--r--.  2 root root       44 1   21 10:12 1.txt
33845219 -rw-r--r--.  2 root root       44 1   21 10:12 2.txt
[root@centos7 home]# vi 2.txt #   2.txt,     :
hello, this is 2.txt!
[root@centos7 home]# more 1.txt  #   1.txt       
hello, this is 1.txt!
hello, this is 2.txt!
[root@centos7 home]# rm -f 1.txt #   1.txt
[root@centos7 home]# more 2.txt #   2.txt   
hello, this is 1.txt!
hello, this is 2.txt!

ハードリンクの作成コマンド:cp -l 1.txt 2.txtln 1.txt 2.txtに等しい.txtハードリンク2を確立する.txt
【ソフトリンク】
Windowsのショートカットに似たシンボルリンク(Symbolic Link)となり、別のファイルの場所情報が含まれています.
[root@centos7 home]# cp -s 2.txt sLink #  2.txt        sLink,   ln –s 2.txt sLink
[root@centos7 home]# ls –li #                  
    69864
33845219 -rw-r--r--.  1 root root       44 1   21 10:12 2.txt
36830246 lrwxrwxrwx.  1 root root        5 1   21 10:21 sLink -> 2.txt
[root@centos7 home]# more sLink
hello, this is 1.txt!
hello, this is 2.txt!

[root@centos7 home]# rm -f sLink #       ,      
[root@centos7 home]# more 2.txt
hello, this is 1.txt!
hello, this is 2.txt!

[root@centos7 home]# rm -f 2.txt #   2.txt
[root@centos7 home]# ls -li
    69860
36830246 lrwxrwxrwx.  1 root root        5 1   21 10:21 sLink -> 2.txt
[root@centos7 home]# more sLink
sLink:          

シンボルリンクの作成コマンド:cp -s 2.txt sLinkln –s 2.txt sLinkに等しい.txtファイルシンボルリンクsLinkの作成
注意:同じストレージメディア上のファイル間でのみハードリンク(Hard Link)を作成でき、異なるマウントポイント下のファイル間でハードリンクを作成することはできません.後者の場合、ソフトリンクを使用できます.(異なるマウントポイントと同じマウントポイントの異なるディレクトリを区別する)例えば、異なるマウントポイントにわたってハードリンクを確立するエラーメッセージ:
[root@centos7 home]# ln 2.txt /dev/hLink
ln:        "/dev/hLink" => "2.txt":         

まとめ:
1:ハードリンクは同じファイルの異なるアクセスパスで、その対応するインデックスノード番号は同じで、削除ファイルは実はその中の1つのハードリンクを削除して、もしこのファイルの対応するハードリンクがすべてこのファイルを削除してやっと削除されて、よくファイルを保護します;2:シンボルリンクはWindowsの対応するショートカットと似ています.シンボルリンクを削除してもソースファイルに影響しません.ソースファイルを削除すると、対応するシンボルリンクも意味がありません.
参考資料:
http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html『Linuxコマンドラインとshellスクリプトプログラミング大全』(第2版)