[ln]ディレクトリやファイルのリンク(ショートカット)を作成〜Linuxコマンド

lnコマンドの基本的な使い方

lnコマンドはディレクトリやファイルのリンク(ショートカット)を作成するコマンドになります。

シンボリックリンクの作成

「ln」コマンドの基本的書式は、

$ ln -s [参照先ファイル(ディレクトリ)名] [新たに作成するシンボリックリンクのファイル名]

となります。例えば「/home/test1」ファイル(参照元)のシンボリックリンクを作成する場合は、

$  ln -s /home/test1 /home/test1link

となります。この時、所有者やグループの権限によっては sudo を「ln」コマンドの前に付ける必要があるときがありますので注意が必要です。

シンボリックリンクの確認

「ls -l」コマンドで作成したシンボリックリンクの確認をしてみます。

$ cd /home

$ ls -l

-rw- r-- r--   1 root root 6 9月 14 20:16 test1
lrwxrwxrwx 1 root root 11 9月 14 20:20 test1link -> /home/test1

シンボリックリンクのコピー

シンボリックリンクをコピーするする場合は、cp コマンドに「-d」オプションをつける必要があります。そのままcp コマンドでシンボリックリンクをコピーすると、参照先のファイルがコピーされてしまいます。

$ cp -d [コピー元ファイル名] [コピー先ファイル名]

となります。例えばシンボリックリンク「/home/test1link」ファイルのコピーを作成する場合は、

$ cp -d /home/test1link /home/test1link-cp

「ls -l」コマンドで作成したシンボリックリンクの確認をしてみます。

$ cd /home

$ ls -l

-rw- r-- r--   1 root root 6   9月 14 20:16 test1
lrwxrwxrwx 1 root root 11 9月 14 20:20 test1link -> /home/test1
lrwxrwxrwx 1 root root 11 9月 14 20:38 test1link-cp -> /home/test1

先ほど、シンボリックリンクのコピーを作成する場合は、cp コマンドに「-d」オプションをつける必要があると書きましたが、もし「-d」オプションをつけなかった場合は、参照元のファイルがコピーされることになります。

例えば、

$ cp /home/test1link /home/test1link-cp2

このように「-d」オプションをつけなかった場合は以下のようにシンボリックリンクが作成されず、参照元のファイルがコピーされます。

$ cd /home

$ ls -l

-rw- r-- r--   1 root root 6   9月 14 20:16 test1
lrwxrwxrwx 1 root root 11 9月 14 20:20 test1link -> /home/test1
-rw- r-- r--   1 root root 6   9月 14 20:46 test1link-cp2

コピーした「test1link-cp2」ファイルがシンボリックリンクとなっていないのが分かりますね。

 

コメント

タイトルとURLをコピーしました