ボンズ カジノ 初回 入金k8 カジノ【 ln 】コマンド――ファイルのハードリンクとシンボリックリンクを作る仮想通貨カジノパチンコ海外 ポーカー トーナメント

ボンズ カジノ 初回 入金k8 カジノ【 ln 】コマンド――ファイルのハードリンクとシンボリックリンクを作る仮想通貨カジノパチンコ海外 ポーカー トーナメント

キヤノン カメラ おすすめk8 カジノ 「Linux基本コマンドTips」のインデックス

寿 パチンコLinux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、シンボリックリンクを作成するための「ln」コマンドです。

目次

lnコマンドの概要 | 書式 | オプション一覧

実行例シンボリックリンクを作成するバックアップファイルを作成するパス付きのリンクを作成するディレクトリへのシンボリックリンクを作成するハードリンクとシンボリックリンクを使い分けるlnコマンドとは?

 「ln」は、ファイルのリンクを作成するためのコマンドです。「ln ファイル名 リンク名」でハードリンクを作成できますが、「-s」オプションを使い、「ln -s ファイル名 リンク名」としてシンボリックリンクを作成する方が一般的です。

[参考記事]「ls -l」コマンドの表示からファイルの属性を理解しよう――ハードリンクとシンボリックリンクの違いは?(連載:“応用力”をつけるためのLinux再入門 第9回)

目次に戻る

lnコマンドの書式

ln [オプション] ファイル名 リンク名

(ファイルのリンク(ハードリンクまたはシンボリックリンク)を作成する)

ln -s ファイル名 リンク名

(ファイルのシンボリックリンクを作成する)

ln -s ディレクトリ名 リンク名

(ディレクトリのシンボリックリンクを作成する)

ln -s ファイル1 ファイル2…… ディレクトリ

(指定したディレクトリの中にシンボリックリンクを作成する)

※[ ]は省略可能な引数を示しています

lnコマンドの主なオプション

 lnコマンドの主なオプションは次の通りです。

短いオプション長いオプション意味-s–symbolicハードリンクの代わりにシンボリックリンクを作成する-d,-F–directoryディレクトリのハードリンクを作成する(スーパーユーザーのみ)-f–forceリンクファイルと同じ名前のファイルがあっても強制的に上書きする-i–interactive上書き前に確認する-n–no-dereferenceリンクの作成場所として指定したディレクトリがシンボリックリンクだった場合、参照先にリンクを作るのではなく、シンボリックリンクそのものを置き換える(-fと組み合わせて使用)-L–logical対象がシンボリックリンクの場合リンクを巡る-P–physicalシンボリックリンク自体へのハードリンクを作成する-r–relative相対パスのシンボリックリンクを作成する-T–no-target-directoryリンク先を常に通常ファイルとして扱う-t DIR–target-directory=DIR指定したディレクトリにリンクを作成する(DIR部分はディレクトリ名)-b–backup=方法上書きされるファイルのバックアップを作成する(実行例2を参照)[方法]:「numbered」または「t」の場合は番号の添え字、「simple」または「never」の場合はファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(-bと同じ)、「existing」または「nil」の場合は既にあるファイルに従う(ない場合はsimpleと同じ)-S 接尾辞–suffix=接尾辞バックアップファイルを作る際のファイル名末尾に付ける文字(無指定時は「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う)-v–verbose経過を表示する

目次に戻る

シンボリックリンクを作成する

 「ln -s」で、ファイルの“シンボリックリンク”を作成できます。シンボリックリンクは、いわばファイルの“別名”で、長いファイル名に別の名前を付けたり、パス名の指定が分かりにくい場所にあるファイルを扱いやすくしたりする(例:ディレクトリへのシンボリックリンク)場合に使います。

コマンド実行例

ln -s ファイル名 リンク名

(ファイルのシンボリックリンクを作成する)

 以下の実行例では、ファイル「mylist02.txt」に対し、「latest」という名前のシンボリックリンクを作成しています。この場合、テキストエディタで「latest」というファイルを編集したり、閲覧したりすることは、「mylist02.txt」を編集したり、閲覧したりすることと同じ操作結果になります。

$ ls -l合計 8-rw-rw-r–. 1 study study 65 5月 15 00:00 mylist01.txt-rw-rw-r–. 1 study study 127 5月 17 00:00 mylist02.txt「mylist01.txt」というファイルと「mylist02.txt」というファイルがある$ ln -s mylist02.txt latest「ln -s」で「mylist02.txt」に「latest」という名前のシンボリックリンクを作成する$ ls -l合計 8lrwxrwxrwx. 1 study study 12 5月 18 19:39 latest -> mylist02.txt-rw-rw-r–. 1 study study 65 5月 15 00:00 mylist01.txt-rw-rw-r–. 1 study study 127 5月 17 00:00 mylist02.txt「latest」というシンボリックリンクが作成された

目次に戻る

バックアップファイルを作成する

 lnコマンドで既存のファイルと同じ名前のリンクを作成すると、ファイルが上書きされてしまいます。「-b」オプションを付けると、ファイル名の末尾に「~」という文字が付いたバックアップファイルが作成されます。なお、末尾の文字は「-S」オプションまたは環境変数「SIMPLE_BACKUP_SUFFIX」で変更できます。

コマンド実行例

ln -sb ファイル名 リンク名

(ファイルのシンボリックリンクを作成する。リンク名と同名のファイルがあった場合「リンク名~」という名前で保存される)

 以下の実行例では、「mylist03.txt」に「latest」という名前のシンボリックリンクを作成しています。

$ ls -l合計 12lrwxrwxrwx. 1 study study 12 5月 18 19:39 latest -> mylist02.txt-rw-rw-r–. 1 study study 65 5月 15 00:00 mylist01.txt-rw-rw-r–. 1 study study 127 5月 17 00:00 mylist02.txt-rw-rw-r–. 1 study study 251 5月 18 19:52 mylist03.txtファイル「mylist01.txt」「mylist02.txt」「mylist03.txt」と、「mylist02.txt」へのシンボリックリンク「latest」がある$ ln -sb mylist03.txt latest「ln -sb」で「mylist03.txt」に「latest」という名前のシンボリックリンクを作成する$ ls -l合計 12lrwxrwxrwx. 1 study study 12 5月 18 19:52 latest -> mylist03.txtlrwxrwxrwx. 1 study study 12 5月 18 19:39 latest~ -> mylist02.txt-rw-rw-r–. 1 study study 65 5月 15 00:00 mylist01.txt-rw-rw-r–. 1 study study 127 5月 17 00:00 mylist02.txt-rw-rw-r–. 1 study study 251 5月 18 19:52 mylist03.txt「mylist03.txt」へのシンボリックリンク「latest」が作成された。もともと存在していた「mylist02.txt」へのシンボリックリンク「latest」は「latest~」という名前で残っている

目次に戻る

パス付きのリンクを作成する

 リンクの参照先は、相対パスでも絶対パスでも指定できます。相対パスで指定した場合は、シンボリックリンクファイルがある場所からの相対パスとなります。既存ファイルへのリンクを作成する場合は、ファイル名の「補完機能」を活用するとよいでしょう。

$ cd(ホームディレクトリへ移動)$ mkdir backupdir(backupdirというディレクトリを作る)$ cd backupdir(baskupdirへ移動)$ ln -s ../.bashrc bashrc0518親ディレクトリにある「.bashrc」へのシンボリックリンクを「bashrc0518」という名前で作成

 「ln -s」では、“存在しないファイル”へのリンクも作成できます。例えば、「外付けHDDをマウントしたときにだけ使えるシンボリックリンク」を作成することも可能です。

目次に戻る

ディレクトリへのシンボリックリンクを作成する

 「ln -s」では、ディレクトリへのシンボリックリンクを作ることもできます。

コマンド実行例

ln -s ディレクトリ名 リンク名

(ディレクトリのシンボリックリンクを作成する)

 以下の実行例では「/usr/share/man/ja/」へのシンボリックリンク「mandir」を作成しています。例えば、「ls mandir」や「cd mandir」で「/usr/share/man/ja/」の内容を確認したり、「/usr/share/man/ja/」へ移動したりできます。

$ ln -s /usr/share/man/ja/ mandir「/usr/share/man/ja/」というディレクトリのシンボリックリンク「mandir」を作成$ ls /usr/share/man/ja/man1 man2 man3 man4 man5 man6 man7 man8$ ls mandir/man1 man2 man3 man4 man5 man6 man7 man8「ls mandir/」は「ls /usr/share/man/ja/」と同じ結果になる

目次に戻る

ハードリンクとシンボリックリンクを使い分ける

 lnコマンドで「-s」オプションなしでリンクを作成すると、「ハードリンク」となります。シンボリックリンクがファイルの“別名”なら、ハードリンクはいわば“本名”です。どちらも本名なので両者は同等です。

コマンド実行例

ln ファイル名 リンク名

(ファイルのハードリンクを作成する)

 以下の実行例では、「mylist03.txt」に対して「newlist」というハードリンクを作成しています。

$ ln mylist03.txt newlistファイル「mylist03.txt」に対して「newlist」というハードリンクを作成する$ ls -l合計 16lrwxrwxrwx. 1 study study 12 5月 18 20:20 latest -> mylist03.txtlrwxrwxrwx. 1 study study 12 5月 18 19:39 latest~ -> mylist02.txt-rw-rw-r–. 1 study study 65 5月 15 00:00 mylist01.txt-rw-rw-r–. 1 study study 127 5月 17 00:00 mylist02.txt-rw-rw-r–. 2 study study 251 5月 18 19:52 mylist03.txt-rw-rw-r–. 2 study study 251 5月 18 19:52 newlist「mylist03.txt」と「newlist」は全く“同等”のファイル

 上記実行例の「mylist03.txt」と「newlist」を「stat」コマンドで見比べてみましょう。

$ stat mylist03.txt File: `mylist03.txt' Size: 251 Blocks: 8 IO Block: 4096 通常ファイルDevice: fd00h/64768dInode: 8947952 Links: 2Access: (0664/-rw-rw-r–) Uid: ( 1000/ study) Gid: ( 1000/ study)Context: unconfined_u:object_r:user_home_t:s0Access: 2016-05-18 19:52:04.245033001 +0900Modify: 2016-05-18 19:52:04.246033001 +0900Change: 2016-05-18 20:22:55.401033001 +0900 Birth: -「mylist03.txt」を「stat」コマンドで確認$ stat newlist File: `newlist' Size: 251 Blocks: 8 IO Block: 4096 通常ファイルDevice: fd00h/64768dInode: 8947952 Links: 2Access: (0664/-rw-rw-r–) Uid: ( 1000/ study) Gid: ( 1000/ study)Context: unconfined_u:object_r:user_home_t:s0Access: 2016-05-18 19:52:04.245033001 +0900Modify: 2016-05-18 19:52:04.246033001 +0900Change: 2016-05-18 20:22:55.401033001 +0900 Birth: -「newlist」を「stat」コマンドで確認

 どちらにも「Links: 2」(4行目)とあるので、ハードリンクが2つ存在していることが分かります。また、どちらも「Inode: 8947952」(4行目)であることから、実体が同じであることも分かります。逆に言えば、ここを見ない限り、両者が同じものであるということは分かりません。当然ですが、タイムスタンプも全く同じになるので“どちらを先に作ったか”といったことも分かりません。

 シンボリックリンクの場合は、ファイルの操作としては同じように扱うことができるけれど、「どのファイルへのリンクなのかが分かる」「シンボリックリンクであることが、ln -lですぐに分かる」というのがポイントです。

 つまり、管理上“別の名前で参照している”ということを分かりやすくしておきたい場合はシンボリックリンク、区別をしたくないときはハードリンク、という使い分けができます(※)。

※ハードリンクには、「(1)同じパーティション内にないといけない」「(2)ディレクリへのハードリンクはスーパーユーザーにしか作れない(さらに「-d」オプションが必要)」という制限があります。

 なお、「rm mylist03.txt」コマンドで「mylist03.txt」を削除した場合、「mylist03.txt」へのシンボリックリンク「latest」は“リンク先なし”となり、ハードリンク「newlist」はそのまま残ります(※)。

※「stat」コマンドで確認できる“リンク数(Links)”は「1」になります。「newlist」を削除するとリンク数が「0」になり、ファイルが削除されます。

目次に戻る

筆者紹介西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。

仮想通貨カジノパチンコ読書 感想 文 小学生 サッカー

コメントを残す