Unixシステムにおけるハードリンクとソフトリンクの説明
簡単に言うと、リンクとはファイルシステム内の別の場所へのショートカットです。長いパス名を入力したり、複数のフォルダにcdを打ったりするのを避けるために非常に便利です。Windowsのデスクトップにあるプログラムのアイコンも実はショートカットです。これも理解できると思いますが、両者には大きな違いがあるのです。unixのリンクには、ハードリンクとソフトリンクの2種類があります。
ユニックスハードリンク
ハードリンクとは、同じi-node(ハードディスク上の物理的な位置)を持つ別のファイルを参照するディレクトリエントリーのことです。実際には、ファイルは1つしかなく、ハードディスク上の同じ物理データを指すディレクトリ・エントリーは2つ以上しかありません。
ln /usr/local/etc/rc.d/nginx nginx
このコマンドを使用して、ハードディスク /usr/local/etc/rc.d/nginx の別のアドレスを表す nginx という名前のファイルをカレントディレクトリに作成します。これで、カレントディレクトリにある nginx を使って、同じ名前のファイルに直接アクセスすることができます(もちろん、接続はすでに作成されているので、nginx ファイルを編集したい場合は、ロングパスの代わりに "vi /usr/local/etc/rc.d/nginx" を実行するだけで、実行したい場合はロングパスを入力しなくても大丈夫です)。
ls -l nginx を実行すると、ハードリンクファイルのパーミッションが元のファイルと全く同じであることがわかりますので、ハードリンクファイルのパーミッションを直接変更すると、元のファイルの対応するパーミッションも変更されることになります。
要するに、元のファイルと同じサイズ、変更時間、パーミッションなどになるわけです。
ハードリンクされたファイルを削除するためにrmを実行すると、リンクカウントが1減算されて変更されますが、ハードウェア上の同じ物理位置を指す別のリンクが存在するため、ファイルはまだ存在します。ファイルは、そのハードリンクがすべて削除され、リンクカウントが0になったときにのみ削除されます。
スクリプトハウス注:UNIXのハードリンクには、ディレクトリをリンクできない、ファイルシステムの範囲にまたがることができない、という2つの大きな制限があります。
UNIXソフトリンクUNIXのソフトリンクは、シンボリックリンクやシンボリックリンクとも呼ばれ、Windowsでいうショートカットに相当するものです。ハードリンクとは異なり、ソフトリンクはハードウェア上に独自のi-nodeを持つ独立したファイルです。ソフトリンクは単に他のファイルへのポインタを含むファイルです。使用方法 ln -s コマンドでソフトリンクを作成し、その後に ls -l -b をクリックすると、ファイルのプロパティが表示されます。
ln -s /etc/rc.conf a
ls -l -b
etc/rc.conf を編集する場合、長いパスを入力するのではなく、ソフトリンクを使って直接編集することができます。例えば、" を実行することで、/etc/rc.conf を編集することができます。 vi a は "と同じ意味です。 vi /etc/rc.conf "です。編集中に "No such file or directory found" のようなエラーが表示され、lsコマンドを実行したらファイルが見つかった場合は、対象のファイルやディレクトリが存在しない、つまり空になってしまったソフトリンクを使用していることになります。そのファイルがソフトリンクであるかどうかは,ls -lというコマンドで確認することができます.ソフト・リンクであれば,リンク先のファイルやディレクトリが存在するかどうかを確認することができます.
スクリプトハウス注:対象ファイルを遠ざけたり、削除することはできません、ソフト削除は失敗します。
UNIXのハードリンクとソフトリンクの違い1. アクセス権は実ファイルへのアクセスを表すものではなく、ソフトリンクのプロパティ(自分の両方やワークグループへのアクセス権など)を変更することはできません。これらの操作は、実ファイルに対してのみ可能です。
2. ソフトウェアリンクは他のファイルを指す実ファイルであり、(ハードリンクのように)ハードディスク上の場所への単なるディレクトリではないため、接続の数は実際には1つだけです。
3. ファイルサイズは確認できません。ソフトリンクに記載されているサイズは、その中に含まれる接続ファイルのサイズであり、それが指し示す実ファイルのサイズではありません。
4. ファイルの修正時間も正確ではありません。ソフト接続では、接続が最後に変更された時刻がわかりますが、参照するファイルが最後に変更された時刻はわかりません。
5. ファイル名は、->の後に、そのファイルが参照する実ファイルのパス名が続くことを示します。
6. ファイルが削除される。ハード接続と異なり、ソフト接続が参照している元のファイルが削除されると、そのファイルのデータブロックも削除され、接続が空になります。ただし、rmコマンドで接続を削除した場合、元のファイルはそのまま残ります。
7. i-nodeの占有。ソフト接続に対するハード接続の利点は、i-nodeを占有しないことです。これは些細なことに思えるかもしれませんが、ハードディスクで利用できるi-nodeの数が限られている場合はそうではありません。ハードディスク上に無数の小さなファイルがある場合、ドライブ上にまだ多くのスペースが残っていても、それらの小さなファイルがドライブ上のすべてのi-nodeを使い果たし、いくつかのファイルが削除されてi-nodeの一部が解放されない限り、i-nodeが使い果たされた後に新しいファイルを作成することができない可能性があります。
結合の使い方の選択についてですが、結合の使い方としては、元ファイルと対象ファイルが現在のファイルと同じファイルシステム上にあることを条件にハード結合するのが最も一般的な使い方です。実ファイルの情報を提供し、元ファイルが削除・移動されても空の接続にならない利点があります。しかし、別のファイルシステム上にあるディレクトリやファイルを結合する必要がある場合は、ソフト結合を使用する必要があります。
関連
-
grub2 boot freebsdの説明
-
FreeBSD 10のカーネルソースコードインストール方法の説明
-
FreeBSDでGraphicsMagickが中国語のフォントをサポートするようにするにはどうしたらいいですか?
-
ベアデバイスとは何ですか?オラクル学習Q&A20例
-
FreeBSD 9.3が正式にリリースされ、公式ダウンロードアドレスが公開されました。
-
gnu bashシェルプログラミングのbashプログラミング共通の構文は、特殊な変数が画像に整理された
-
FreeBSD FreeNASインストール図チュートリアル
-
Unix OSのコマンドと設定ファイルによる知識共有の保護
-
Unix系ディレクトリ操作コマンド概要
-
UNIXファイルシステムの解析と比較考察
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
FreeBSD で zfs: failed with error 6 エラーを修正する方法は?
-
Unixファイルシステムおよびpwdコマンドの実装詳細
-
FreeBSDのシステム使用法の説明
-
USB フラッシュドライブを使って FreeBSD をインストールするための簡単なチュートリアル
-
Unixとは何ですか?UnixとLinuxの違いは何ですか?
-
見落とされがちな5つのUnixコマンド
-
デュアルハードドライブで起動しない場合の Freebsd の解決策
-
FreeBSD 8.1 で Git サーバーを構築する手順
-
freebsdでのネットワーク再起動に関連するコマンドの解析
-
freebsd 時間設定サブセクション詳細