[解決済み] シンボリックリンクとハードリンクの違いは何ですか?
2022-03-19 16:34:10
質問
最近、就職の面接でこんなことを聞かれました。私は正直に、シンボリックリンクの動作や作成方法は知っていますが、ハードリンクの使い方やシンボリックリンクとの違いは理解していませんと答えました。
どのように解決するのですか?
ファイルシステムの下で、ファイルはinodeで表現されます。(あるいは、複数のinodeなのか?よくわかりません)。
ファイルシステム内のファイルは、基本的にinodeへのリンクです。
ハードリンクは、同じinodeへのリンクを持つ別のファイルを作成するだけです。
ファイルを削除すると、その下にあるinodeへのリンクが1つ削除されます。inodeは、そのinodeへのリンクがすべて削除されたときにのみ、削除(または削除可能/上書き可能)されます。
シンボリックリンクは、ファイルシステム内の別の名前へのリンクです。
ハードリンクが作成されると、そのリンクはinodeになります。元のファイルを削除したり、名前を変更したり、移動したりしても、ハードリンクは基になるinodeにリンクしているので、影響しません。inode上のデータに変更があった場合、そのinodeを参照しているすべてのファイルに反映されます。
注:ハードリンクは、同じファイルシステム内でのみ有効です。シンボリックリンクは、単に別のファイルの名前であるため、ファイルシステムをまたぐことができます。
関連
-
[解決済み] usr/bin/env bash」と「#!/usr/bin/bash」の違いは何ですか?
-
[解決済み] SCP Permission denied (publickey). EC2において、ディレクトリに-rフラグを使用した場合のみ。
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] POSIX」の意味を教えてください。
-
[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
-
[解決済み] ファイルディスクリプタとは何か、わかりやすく解説します。
-
[解決済み] ダッシュ/ハイフンで始まる文字列をgrepするにはどうしたらいいですか?
-
[解決済み】SO_REUSEADDRとSO_REUSEPORTはどう違うのですか?
-
[解決済み] パイプラインでstdoutを強制的にラインバッファリングする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] dev/ttyは何が特別なのですか?[クローズド]
-
[解決済み] 新しい鍵を作成せずに、SSH鍵のパスフレーズを削除するにはどうすればよいですか?
-
[解決済み] 全ユーザーのcronジョブを一覧表示する方法を教えてください。
-
[解決済み] less' で行番号を表示する方法 (GNU)
-
[解決済み] PowerShellの*Nix 'which'コマンドに相当するもの?
-
[解決済み] sedがその場でファイルを編集
-
[解決済み] PowerShellはWindowsのCygwinシェルを置き換える準備ができていますか?[クローズド]
-
[解決済み] Unixの「ls」による名前順ソート
-
[解決済み] パイプラインでstdoutを強制的にラインバッファリングする
-
[解決済み] シェルスクリプト内の文字列を変数で置換する