Linux lnコマンドの使用

Linux lnコマンドの使用

1. コマンドの紹介

ln コマンドは、ファイルのリンクを作成するために使用されます。リンクは、ハード リンクとソフト リンク (シンボリック リンク) に分かれています。デフォルトではハード リンクが作成されます。ソフト リンクを作成する場合は、-s オプションを使用する必要があります。この記事では GNU バージョンの実装について説明します。他のバージョン (POSIX バージョンなど) では実装が異なる場合があります。

知らせ:

(1)ハードリンクは独立したファイルではなく、単なるファイル名です。ファイルには複数のファイル名を付けることができ、ディスクから最後のファイル名を削除することによってのみファイルを削除できます。
(2) ソフトリンクはファイルシステムをまたぐことができますが、ハードリンクはファイルのエイリアスであり、独立したファイルではないため、ファイルシステムをまたぐことはできません。
(3) ディレクトリへのハードリンクを作成することはできません。ディレクトリへのハードリンクを作成すると、ディレクトリのinodeと物理ブロックがループを形成する可能性があるためです。この時点でディレクトリを削除すると、ディレクトリ エンティティ ブロックはシステムからアクセスできなくなり、分離されたディレクトリ (ルート ディレクトリからアクセスできなくなる) になります。
(4)ハードリンクを作成する場合、各ターゲットが存在している必要がある。ソフト リンクを作成する場合、ターゲット ファイルが存在する必要はありません。
(5) ソフトリンクは、Windows のショートカットと同様に、パス情報を含む独立したファイルです。そのプロパティの多くは元のファイルに依存するため、ソフトリンクファイルに権限を設定することは意味がありません。

2. コマンド形式

ln [オプション]... [-T] ターゲットリンク名 (第 1 形式)
ln [オプション]...ターゲット(第2形式)
ln [オプション]... ターゲット... ディレクトリ (3番目の形式)
ln [オプション]... -t ディレクトリターゲット... (4番目の形式)

最初の形式では、指定されたターゲット ファイルに指定された名前のリンクが作成されます。これは最も一般的に使用される形式です。
2 番目の形式では、指定されたターゲット ファイルに対して現在のディレクトリに同じ名前のリンクが作成されます。
3 番目と 4 番目の形式では、各ターゲット ファイルに対して指定されたディレクトリに同じ名前のリンクが作成されます。

3. オプションの説明

長いオプションの必須引数は、短いオプションでも必須です。

--backup[=コントロール]
	既存のターゲットファイルをすべてバックアップする -b
	--backup に似ていますが、-d、-F、--directory パラメータは受け付けません。
	スーパーユーザーがディレクトリのハードリンクを作成できるようにします (注: システムの制限により、スーパーユーザーでも失敗する場合があります)
-f、--force は、
	ファイルまたはディレクトリへのリンクを強制的に作成します。リンクと同じ名前のファイルまたはディレクトリは上書きされます -i, --interactive
	既存のファイルを上書きする前にユーザーに確認する -L, --logical
	ハードリンクを作成するときに、ターゲットファイルがソフトリンクの場合は、それを逆参照してソフトリンクのターゲットファイルを指すようにします -n、--no-dereference
	ソフトリンクを通常のファイルとして扱い、参照解除しない -P, --physical
	ハードリンクを作成するときは、ソフトリンクのターゲットファイルではなく、ソフトリンク自体を直接ポイントします(デフォルト)
-r, --相対
	リンクの場所に相対的なシンボリックリンクを作成します -s, --symbolic
	ハードリンクの代わりにソフトリンクを作成します -S, --suffix=SUFFIX
	バックアップ ファイルのサフィックスを変更します。 -bパラメータを使用してターゲットファイルをバックアップした後、バックアップファイルのサフィックスはデフォルトで~になります。
-t, --target-directory=ディレクトリ
	リンクファイルが保存されているディレクトリを指定します -T, --no-target-directory
	LINK_NAME をリンクファイルを含むディレクトリではなくリンクファイルとして扱う -v, --verbose
	コマンド実行プロセスを表示する --help
	ヘルプを表示して終了 --version
	バージョンを表示して終了

オプション --backup のパラメータ CONTROL は、バックアップ後にファイルのバージョンが生成される方法を制御します。可能な値は次のとおりです。

なし、ゼロ
	番号をバックアップしないでください。
	スクロールするには数値サフィックスを使用します。バックアップファイル名のサフィックスは、~1~の順に増加します。
既存、なし
	数字のサフィックスが使用されている場合は、その数字を使用し、そうでない場合は、単純なバックアップ方法を使用します。つまり、一度だけ簡単にバックアップし、
	シンプルなバックアップ方法のみを使用する

オプション -s を使用してソフト リンクを生成する場合、オプション -L および -P は無視され、ハード リンクが作成されます。-P オプションは、ハード リンクをソフト リンク自体にポイントするためにデフォルトで使用され、これはソフト リンクにエイリアスを付与することと同じです。

4. 一般的な例

(1)/etc/passwdファイルへのソフトリンクを作成します。

ln -s /etc/passwd passwdSoftLink

ll パスワードソフトリンク
lrwxrwxrwx 1 root root 11 11月13日 22:21 passwdSoftLink -> /etc/passwd

(2)ファイル/etc/passwdに複数のソフトリンクを作成します。ソフトリンクの名前は同じで、数字はバックアップファイルのバージョン番号を表すために使用されます。バックアップが複数ある場合、バージョン番号は順番に増加します。

ln -s --backup=番号付き /etc/passwd passwdSoftLink

ll パスワードソフトリンク*
lrwxrwxrwx 1 root root 11 11月14日 10:36 passwdSoftLink -> /etc/passwd
lrwxrwxrwx 1 root root 11 11月14日 10:36 passwdSoftLink.~1~ -> /etc/passwd

(3)存在しないファイルへのソフトリンクを作成する。

ln -s nofile nofileソフトリンク

ll コマンドを使用してソフト リンクを表示すると、ソフト リンク名は赤になり、存在しないターゲット ファイル名は赤い背景に白いテキストで継続的に点滅します。

ソフトリンク nofileSoftLink にコンテンツを書き込んで保存すると、ファイル nofile が生成されます。

(4)/etc/passwdのハードリンクを作成します。

ln /etc/passwd passwdHardLink

ll -i /etc/passwd passwdHardLink
787795 -rw-r--r-- 2 ルート ルート 1552 2019年1月4日 /etc/passwd
787795 -rw-r--r-- 2 ルート ルート 1552 2019年1月4日 passwdHardLink

ll コマンドを使用して 2 つのファイルを表示すると、最初の列の inode 番号は同じで、3 番目の列のハード リンクの数は 2 であり、ファイルのデータ エンティティを指すファイル名が 2 つあることがわかります。

(5)/etc/passwdと同じ名前のソフトリンクを作成し、そのソフトリンクを現在のディレクトリに配置します。つまり、3 番目と 4 番目のコマンド形式を使用して、ファイルへのリンクを作成します。

ln -s /etc/passwd 。

# または ln -s -t . /etc/passwd

# ll パスワードを表示
lrwxrwxrwx 1 root root 11 11月14日 10:43 passwd -> /etc/passwd

ターゲット ファイルを書き込むときは、パスをターゲット ディレクトリに対して相対的にするか、絶対パスを使用する必要があることに注意してください。そうしないと、ソフト リンクはターゲット ファイルを指すことができません。

(6)作成したリンクファイルと同じ名前のファイルが存在する場合は、バックアップせずに強制的に上書きします。

ln -sf /etc/passwd passwdSoftLink

(7)ソフトリンクを新しいターゲットファイルを指すように変更します。ソフト リンク passwdSoftLink を /usr/bin/passwd にポイントし、ソフト リンクを再確立して、元のソフト リンク passwdSoftLink を強制的に上書きします。

ln -sf /usr/bin/passwd passwdSoftLink

ll パスワードソフトリンク
lrwxrwxrwx 1 root root 15 Nov 14 10:52 passwdSoftLink -> /usr/bin/passwd

上記は Linux ln コマンドの使用に関する詳細な内容です。Linux ln コマンドの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • Linux gzipコマンドの使用
  • Linux userdel コマンドの使用法
  • Linuxのdateコマンドの使用
  • Linuxコマンドをバックグラウンドで実行する方法
  • Linux statコマンドの使用
  • Linux lsコマンドの使用
  • Linux の cut コマンドの説明
  • Linux bzip2 コマンドの使用

<<:  MySql の 4 つのトランザクション分離レベルについて簡単に説明します。

>>:  Vue + OpenLayers クイックスタートチュートリアル

推薦する

MySQLのクラスタ化インデックスと非クラスタ化インデックスの詳細な説明

1. クラスター化インデックステーブル データはインデックスの順序で保存されます。つまり、インデック...

LNMP と phpMyAdmin を Docker にデプロイする方法

環境準備:複数のコンテナに基づいてホストに lnmp をデプロイします。 nginx サービス: 1...

VSCode 開発 UNI-APP 構成チュートリアルとプラグイン

目次前面に書かれた予防開発環境構築開発構成に関する注意事項前面に書かれたuni-app は、Vue....

Docker ケース分析: MySQL データベース サービスの構築

目次1 設定ディレクトリとデータディレクトリを作成する3 イメージからホストに構成ファイルをコピーす...

データベースインデックスの知識ポイントの概要

目次ファーストルックインデックスインデックスの概念インデックスファイルの構成インデックスの役割SQL...

WeChatミニプログラムでの仮想リストの実装例

目次序文分析する初期レンダリング方法初期最適化さらなる最適化方法2序文ほとんどのミニプログラムには、...

モバイル端末におけるビューポートの具体的な使用法についての簡単な説明

目次1. 基本概念1.1 2種類のピクセル1.2 3つのビューポート2. ビューポート設定3. 1回...

カンマで区切られたmysqlの分割関数の実装

1: 文字列を区切るためのストアドプロシージャを定義する 区切り文字 $$ `mess`$$ を使う...

Vue3の状態管理の使用方法の詳細な説明

目次背景提供/注入共有状態の抽出データを提供するデータの挿入まとめ反応的な共有状態の抽出共有状態の使...

HTML でスクロールバーを非表示にしたり削除したりする方法

1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...

Tomcat でタイムアウトしたセッションを監視および削除する方法

序文偶然、30 分の Tomcat セッション時間は、セッションが作成された後、30 分間のみ有効で...

ウェブページ制作と饅頭の関係(体験の共有)

昨日は遅くまで寝ていて、一日中起きていました。私の年齢では、夜更かしして本を書くのはもう無理のようで...

VUEをベースにしたシンプルな学生情報管理システムの実装

目次1. 主な機能2. 実装のアイデア3. コードの実装4. エフェクト表示V. 結論1. 主な機能...

Linux オペレーティング システムで ssh/sftp を構成して権限を設定する方法

FTP と比較すると、SSH ベースの sftp サービスは、セキュリティが優れており (非プレーン...

Dockerプライベートウェアハウスの構築とインターフェース管理の詳細な説明

1. レジストリについて公式 Docker ハブは、パブリックイメージを管理するのに適した場所です。...