Linux にはファイルへのリンクが 2 種類あり、1 つはハード リンク、もう 1 つはソフト リンクです。今回はこの2つのリンクとその使い方を紹介します。
ハード リンク
まずハード リンクを見て、PHP の変数参照を使用してハード リンクを比較してみましょう。
$a = 100; $b = &$a;
$a はファイル、$b は $a ファイルへのハード リンクと考えることができます。現在の効果は、$a を変更しても $b を変更しても相手に影響を与えるというものです。
ファイルの 1 つが削除された場合、もう 1 つのファイルはまだ存在しますか?
unset($b);
$b ファイルが削除されても、$a ファイルはまだ存在します。
次に、上で述べたことと同じかどうかを確認してみましょう。ハード リンクを作成するコマンドは次のとおりです。
ln 源文件 链接文件
システムには現在 1.php ファイルがあります。次に、そのハード リンクを作成しましょう。
# ln 1.php 2.php # cat 1.phpログイン後にコピー
次に、2.php ファイルを変更して、1.php ファイルも変更されるかどうかを確認してみましょう。
# echo -e '\n?>' >> 2.php # cat 1.php
2.php が変更されると、1.php ファイルも変更されることがわかります。次に、2.php ファイルを削除して、1.php ファイルがまだ存在するかどうかを確認してみましょう。
# rm -f 2.php # ll 1.php -rw-r--r-- 1 root root 52 Jun 20 08:05 1.php
2.phpを削除しても、1.phpファイルが残っていることがわかります。
ハード リンクの機能は上で紹介されていますが、ハード リンクの使用に関する制限は次のとおりです:
ディレクトリをリンクすることはできません
ファイル システムをまたがるリンクは作成できない
上記 2 点の制限により、日常生活でハード リンクを使用する機会はほとんどありません。別の種類のリンクは次のとおりです。 -ソフトリンク、上記のような制限がないのでよく使っています! 。
ソフト リンク
一般に、ソフト リンクは Windows システムのデスクトップ ショートカットと比較されます。ソフト リンクを作成すると、ディレクトリの場所を探すことなくコマンドを簡単に実行できます。ファイル。また、ソフトリンクファイルは削除されますが、ソースファイルはまだ存在します。ただし、ソース ファイルが削除された場合、リンクされたファイルは無効になります。
ソフトリンクにはファイルとディレクトリの2種類があり、それぞれの機能を以下に紹介します。
ファイルへのソフト リンクの作成
mysql のインストール後に絶対パスを使用する必要がない理由について考えたことはありますか?実行するmysql。ここではソフトリンクが使用されます。
# which mysql /usr/bin/mysql # ll /usr/bin/mysql lrwxrwxrwx 1 root root 26 Nov 4 2019 /usr/bin/mysql -> /usr/local/mysql/bin/mysql
コマンドの実際のアドレスは /usr/local/mysql/bin/mysql であることがわかりますが、ファイルへのソフト リンクは /usr/bin/ ディレクトリに作成されているため、絶対パスを使用する必要はありません。コマンドはパス経由で呼び出すことができます。
これが当てはまるかどうかを確認するために、自分でファイルのソフト リンクを作成してみましょう。
まず、soft.sh
vim soft #!/bin/bash echo 'study softlink' # chmod u+x soft
次に、ファイルへのソフト リンクを作成し、コマンドを直接実行できるかどうかを確認します。
# ln -s /root/soft /usr/bin/ # soft study softlink
ディレクトリへのソフト リンクを作成します
まず第一に、ソフト リンクを作成する場合、 ターゲットのファイルまたはディレクトリが存在してはならないという事実に注意する必要があります。存在する。
以下に、非常に一般的なシナリオを紹介します:
Web サイトのファイルは /www/wwwroot ディレクトリに保存されており、システムの実行時間がますます悪化するため、ディレクトリはますます大きくなり、ルート ディレクトリと同じパーティションにあるため、ルート ディレクトリはほぼいっぱいになります。もう一方のパーティション ディレクトリ /data には、まだ 99G のスペースが残っています。この時点で、パーティションを再分割したくない場合、ルート ディレクトリが配置されているパーティションを解放するにはどうすればよいでしょうか?
以下では、ディレクトリ ソフト リンクを使用してこの問題を解決します。まず、/data ディレクトリに wwwroot ディレクトリを作成し、次に /www/wwwroot ディレクトリ内のすべてのファイルを /data/wwwfile に移動して、/www/wwwroot ディレクトリを削除します。最後に、/data/wwwfile ディレクトリに /www/wwwroot
mkdir /data/wwwfile mv /www/wwwroot/* /data/wwwfile rm -rf /www/wwwroot ln -s /data/wwwfile /www/wwwroot
へのソフト リンクを与えます。それでは、問題が本当に解決したかどうかをテストしてみましょう。現在、ルート パーティションの使用率は 19% ですが、/data パーティションの使用率は 9% です。
/dev/vda1 40G 7.4G 33G 19% / /dev/vdb1 500G 43G 458G 9% /data
/www/wwwroot ディレクトリに 2G の大きなファイルを作成し、どのパーティションの容量が増加したかを確認します。私たちが求める答えは、ルート パーティションは変わっていないのに、/data パーティションの使用量が増加しているということです。
dd if=/dev/zero of=/www/wwwroot/bigfile bs=1G count=2 # 然后看看各分区使用容量的变化 /dev/vda1 40G 7.4G 33G 19% / /dev/vdb1 500G 45G 456G 9% /data
ご覧のとおり、ルート パーティションの空き容量は 33G のままですが、/data パーティションは 458G から 456G に変更されているため、問題は解決されました。
以上がLinux ファイルリンクとそのアプリケーションの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。