cp -sオプションの使い方を完全ガイド!初心者でもわかるシンボリックリンク作成法
生徒
「Linuxでコピーすると、同じファイルが2つできますけど、ディスク容量が心配です…」
先生
「そんなときは cp -s オプションを使うと、シンボリックリンク(ショートカット)を作れるよ。容量を使わずにコピーみたいに扱えるんだ。」
生徒
「ショートカット?それってWindowsのアイコンみたいなやつですか?」
先生
「その通り!中身はコピーしないけど、元のファイルを指し示すリンクを作るんだ。実際に使ってみようか!」
1. cpコマンドとは?
cpコマンドは、Linuxでファイルやディレクトリをコピーする基本コマンドです。通常はファイルの内容をそのまま別名で複製します。
cp photo.jpg backup_photo.jpg
このように書くと、元ファイルのphoto.jpgを複製してbackup_photo.jpgを作成します。
2. cp -sオプションとは?(シンボリックリンクを作る)
-sはsymbolic(シンボリック)の略で、シンボリックリンクを作成するためのオプションです。
通常のコピーと違って、ファイルの中身はコピーせず、参照用のリンク(ショートカット)を新しく作るだけなので、ディスク容量を節約できます。
実行例はこちら:
cp -s original.txt shortcut.txt
このコマンドで、shortcut.txtはoriginal.txtを指し示すシンボリックリンクになります。
3. シンボリックリンクの仕組みを例えで理解
シンボリックリンクは、住所メモのようなものです。たとえば「Aさんの家」という場所をコピーする代わりに、「Aさんの住所が書かれた紙」を渡すイメージです。
つまり、リンクを開けば元のファイルを見られますが、実体は元ファイルにしかありません。
だから、元ファイルが消えるとリンクも機能しなくなります。
4. シンボリックリンクの確認方法(ls -l)
作成されたシンボリックリンクが正しく動作しているかは、ls -lコマンドで確認できます。
ls -l shortcut.txt
lrwxrwxrwx 1 user user 13 Sep 16 10:00 shortcut.txt -> original.txt
このように、shortcut.txt が original.txt を指していることがわかります。「→」で示されるのがシンボリックリンクの特徴です。
5. cp -sの活用例
- 容量を節約したいとき(同じファイルを複数の場所に置きたいけど中身は1つでいい)
- 設定ファイルの切り替え(リンク先を変更するだけで済む)
- 開発環境で別名を使いたいとき
たとえば、~/config/main.confを別フォルダにリンクしたいときはこうします。
cp -s ~/config/main.conf ~/backup/link.conf
6. シンボリックリンクとハードリンクの違い
cp -l(ハードリンク)とcp -s(シンボリックリンク)の違いは非常に重要です。
| 項目 | ハードリンク(-l) | シンボリックリンク(-s) |
|---|---|---|
| 中身の実体 | 共有(実体は同じ) | 別(参照するだけ) |
| ファイルシステムをまたげるか | × 不可 | ○ 可能 |
| 元ファイルが消えたとき | リンク先も保持 | リンク切れになる |
柔軟性を重視するならシンボリックリンク、完全なコピー代替にしたいならハードリンクが向いています。
7. -sオプションを使う際の注意点
- リンク切れに注意(元ファイルを削除するとリンクが無効に)
- 複数のリンク名で同じファイルを指すと混乱しやすい
- シンボリックリンクは実行ファイルの代替に使うと便利だが、パスが通っている必要がある
安全に使うには、ls -lなどでリンク先の確認をこまめに行うのがおすすめです。