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 クイックスタートチュートリアル

推薦する

win10 で mysql8.0.23 をインストールし、「サービスが制御機能に応答しません」という問題を解決する方法

Windows10にmysqlをインストールする1. 公式サイトからMySQLをダウンロードするウェ...

列名を知らなくてもMySQLインジェクションを詳細に解説

序文最近、穴を掘ってスペースを作っているだけなので、心が空っぽになっているように感じます。テクノロジ...

JS で列挙をシミュレートする方法

序文現在の JavaScript には列挙の概念がありません。一部のシナリオでは、列挙を使用するとデ...

Docker-compose チュートリアルのインストールとクイックスタート

目次1. Compose の紹介2. ComposeとDockerの互換性3. Dockerをインス...

64 ビット CentOs7 ソース コードのインストール mysql-5.6.35 プロセス共有

インストールプロセス中に問題が発生しないように、まず依存パッケージをインストールします。 [root...

MySQL をベースにしたシンプルな検索エンジンを実装する

目次MySQL ベースの検索エンジンの実装1. ngram全文パーサー2. 全文インデックスを作成す...

Vue でのスロット配置と使用状況分析

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

Iframe 適応高さコードに関する 3 つの議論

B/S システム インターフェースを構築する場合、メイン ページ index.html 内に他のペー...

Vueでaxiosを簡単にカプセル化する方法

Vueにaxiosを挿入する 'axios' から axios をインポートします。...

XHTML の珍しいが便利なタグ

Xhtml には、あまり使用されないが非常に便利なタグが多数あります。半分の労力で 2 倍の結果を達...

上下に空白行があるフォームを挿入する解決策

ウェブページを作成するときに、フォームを挿入した後、フォームの上下に空白行が表示されることがよくあり...

React Routerの歴史について簡単に説明します

React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...

Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明

目次解決された主な問題1. バックエンドから返され、バックエンドに送信されるデータは、次の形式になり...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

フォント宝庫 50 種類の素晴らしい無料英語フォントリソース パート 1

デザイナーは独自のフォント ライブラリを持っているため、プロジェクトの設計時にすぐに使用できます。今...