Linux上のlnコマンドの詳細説明とソフトリンクとハードリンクの違い

10061 ワード

とても良い1篇のドキュメント、回転してみんな参考にします!
ハードリンク
    UNIX                         ,          。                     。                     ,                           。                    inode ,                  (   ,     :    -->   inode;        ,   inode    )。            ,            inode,           0,        。           ,           !
                   (inode),              ,            。    ,          (   ),           3,     3            ,         ,            ,        1,          ,(                  )        0                        。

ソフトリンク
                ,              ,                       。                  ,        inode       ,             (   :    +     -->        )。      inode,                。  ,          ,        !  ,                   ,                ,        。

システムファイルシステムの使用例を挙げると、/homeファイルシステムは現在3.0 G、残り105 Gを使用している.
[root@s14 ~]# df -h
Filesystem            Size Used Avail Use% Mounted on
/dev/mapper/sys-root 4.0G 2.3G 1.5G 60% /
/dev/cciss/c0d0p1     244M   11M 221M   5% /boot
none                  1.9G     0 1.9G   0% /dev/shm
/dev/mapper/sys-home 112G 3.0G 105G   3% /home
/dev/mapper/sys-var   2.0G 174M 1.7G 10% /var

私たちは大きなファイルを持ってテストをします.1.6 Gサイズです.
[root@s14 ~]# ls -lh /home/zjw/Wins2003.tar.gz 
-rw-r--r-- 1 zjw zjw 1.6G Jun 12 18:51 /home/zjw/Wins2003.tar.gz

ソフト接続の確立:
[root@s14 ~]# ln -s /home/zjw/Wins2003.tar.gz 
/home/zjw/Wins2003.tar.gz.symboliclink

ハード接続の確立:
[root@s14 ~]# ln -b /home/zjw/Wins2003.tar.gz 
/home/zjw/Wins2003.tar.gz.hardlink

これらのファイルの状況を見ると、1)ハードリンクファイルは元のファイルと同じ大きさ1.6 Gで、ソフトリンクファイルは27バイトしか表示されていない.2)ハードリンクファイルinode番号は元のファイルと同じ753682で、ソフトリンクファイルinode番号は753685です.
[zjw@s14 ~]$ ls -lih /home/zjw/Wins2003.tar.gz*
753682 -rw-r--r-- 2 zjw zjw 1.6G Jun 12 18:51 /home/zjw/Wins2003.tar.gz
753682 -rw-r--r-- 2 zjw zjw 1.6G Jun 12 18:51 /home/zjw/Wins2003.tar.gz.hardlink
753685 lrwxrwxrwx 1 root root   27 Jun 16 18:10 /home/zjw/Wins2003.tar.gz.symboliclink -> /home/zjw/Wins2003.tar.gz

/homeファイルシステムを見ると、スペースの使用に明らかな変化はないか、3.0 G、残り105 Gを使用しているかがわかります.
[root@s14 ~]# df -h /home
Filesystem            Size Used Avail Use% Mounted on
/dev/mapper/sys-home 112G 3.0G 105G   3% /home

上記の実験の説明:1)同じファイルシステムの下で、ソフトリンクまたはハードリンクを作成することができる(同じファイルシステムの異なるディレクトリの下でもよい).2)ハードリンクのファイル表示サイズは元のファイルと同じである.ソフトリンクのファイルは小さく、数十バイトしかありません.3)ハードリンクされたファイルのinodeは元のファイルと同じである.ソフト接続のファイルには自分のinodeがあり、元のファイルとは違います.4)ソフトリンクまたはハードリンクファイルを作成しても、ファイルシステムのディスク領域を明らかに占有しない.ファイルシステム(/home->/var)にまたがって、ソフトリンクとハードリンクを確立できるかどうかをテストします.ソフトリンクは成功しました.
[root@s14 var]# ln -s /home/zjw/Wins2003.tar.gz 
/var/wins2003.symboliclink

ハードリンクに失敗しました:
[root@s14 var]# ln -b /home/zjw/Wins2003.tar.gz   /var/wins2003.hardlink      
ln: creating hard link `/var/wins2003.hardlink' to `/home/zjw/Wins2003.tar.gz': Invalid cross-device link

上記の実験説明:
1)ソフトリンクはファイルシステムにまたがって確立できる;ハードリンクはできません.
ln linux          ,                           ,           -s,     :ln –s         。

異なるディレクトリで同じファイルを使用する必要がある場合は、必要なディレクトリごとに同じファイルを配置する必要はありません.固定されたディレクトリにファイルを配置し、他のディレクトリでlnコマンドリンク(link)を使用すれば、ディスク領域を繰り返し使用する必要はありません.例えば、ln–s/bin/less/usr/local/bin/less-sはシンボル(symbolic)の意味です.第一に、lnコマンドはリンクファイルごとに同期性を維持します.つまり、どこを変更しても、他のファイルは同じ変化をします.第二に、lnのリンクはまたソフトリンクとハードリンクの2種類で、ソフトリンクはln–s*で、それはあなたの選択した位置の上で1つのファイルのミラーを生成するだけで、ディスクの空間を占有しないで、ハードリンクln*、パラメータ-sがなくて、それはあなたの選択した位置の上で1つのソースのファイルと同じ大きさのファイルを生成して、ソフトリンクかハードリンクかにかかわらず、ファイルは同期して変化します.lsでディレクトリを確認すると、lnコマンドで生成されたファイルがあり、ls-lコマンドで確認すると、表示されているlinkのパスが表示されます.命令詳細説明命令名:ln使用権限:すべての使用者使用方式:ln[options]source dist,ここでoptionのフォーマットは[-bdfinsvF][-S backup-suffix][-V{numbered,existing,simple}[–help][–version][-]説明:Linux/Unixアーカイブシステムには、いわゆるリンク(link)があり、ファイルの別名と見なすことができますが、連結は2つに分けられます.ハード連結(hard link)とソフト連結(symbolic link)です.ハード連結は、1つのファイルに複数の名前を付けることができることを意味します.ソフト連結の方法は、別のファイルの位置を指す特殊なファイルを生成することです.ハードコネクションは同じアーカイブシステムに存在するが、ソフトコネクションは異なるアーカイブシステムを越えることができる.ln source distはsourceに連結(dist)を生成し、ハード連結またはソフトリンクを使用するにはパラメータによって決定される.ハードリンクやソフトリンクにかかわらず、元のファイルをコピーすることはなく、非常に少ないディスクスペースしか消費されません.-f:リンク時にまずdistと同じファイル名のファイルを削除する-d:システム管理者が自分のディレクトリをハードリンクすることを許可する-i:distと同じファイル名のファイルを削除する時にまず質問する-n:ソフトリンクを行う時、distを一般的なアーカイブ-sと見なす:ソフトリンク(symbolic link)を行う-v:連結前にそのファイル名を表示-b:リンク時に上書きまたは削除されるファイルをバックアップする-S SUFFIX:バックアップされたファイルにSUFFIXの語尾を付ける-V METHOD:バックアップの仕方を指定する-help:補助説明を表示する-version:バージョン例を表示する:ファイルyyにsymbolic linを生成するk:zz ln-s yy zzアーカイブyyはhard link:zz ln yy xxを生成する