カテゴリ: Linuxコマンド集 更新日: 2025/12/30

cp -lオプションの使い方を完全ガイド!初心者でもわかるハードリンクの仕組みと使い方

cp -lオプション|ハードリンクを作成してコピーを代替する方法
cp -lオプション|ハードリンクを作成してコピーを代替する方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxでファイルをコピーすると、同じデータが2つになるんですよね?」

先生

「うん、普通のcpコマンドだとそうなるね。でも-lオプションを使えば、ハードリンクという方法で、見た目はコピーだけど中身は同じファイルにできるよ。」

生徒

「えっ、それってどういうことですか?容量も減らせるんですか?」

先生

「その通り!ハードリンクならディスク容量を節約できるんだ。じゃあ詳しく説明するね。」

1. cpコマンドとは?

1. cpコマンドとは?
1. cpコマンドとは?

cpコマンドは、Linuxでファイルやディレクトリをコピーするための基本コマンドです。コピーとは、元のファイルと同じ内容を持つ新しいファイルを作ることで、2つは別々に管理されます。

基本的なコピーは以下のように行います。


cp original.txt copy.txt

この操作では、original.txtcopy.txtは完全に別のファイルとして存在します。

2. cp -lオプションとは?(ハードリンクの作成)

2. cp -lオプションとは?(ハードリンクの作成)
2. cp -lオプションとは?(ハードリンクの作成)

cp -lオプションは、通常のコピーではなくハードリンクを作成するためのオプションです。

ハードリンクとは、1つの実体ファイルに複数の名前(パス)をつける技術です。見た目は2つのファイルでも、中身は1つだけという仕組みです。

使用例はこちら:


cp -l original.txt linked.txt

このコマンドでは、linked.txtが作られますが、実体はoriginal.txtと共有しています。

3. ハードリンクのしくみを図でイメージ

3. ハードリンクのしくみを図でイメージ
3. ハードリンクのしくみを図でイメージ

例えるなら、ハードリンクは1つの本(データ)に2つの表紙(名前)を付けたようなものです。表紙は違っても、開いて読む中身は同じ本です。

どちらかのファイルを編集すると、もう片方にも反映されます。なぜなら、実体が1つだからです。

4. ハードリンクと通常のコピーの違い

4. ハードリンクと通常のコピーの違い
4. ハードリンクと通常のコピーの違い
比較項目 通常コピー ハードリンク
データの実体 2つ存在 1つだけ
保存容量 2倍になる 変わらない
編集の影響 別々の内容 片方を変えるともう片方も変わる

5. ハードリンクの確認方法(ls -iコマンド)

5. ハードリンクの確認方法(ls -iコマンド)
5. ハードリンクの確認方法(ls -iコマンド)

ハードリンクが本当にできているか確認するには、ls -iコマンドでinode番号を調べます。inode(アイノード)とは、Linuxがファイルの中身を管理する内部的な番号です。


ls -i original.txt linked.txt
655392 original.txt
655392 linked.txt

このように、2つのファイルが同じinode番号を持っていれば、ハードリンクです。

6. -lオプションを使うときの注意点

6. -lオプションを使うときの注意点
6. -lオプションを使うときの注意点
  • 異なるファイルシステム間では使えない(例:別のディスクやUSB)
  • ディレクトリには使用できない(root権限で特別な設定を除く)
  • ハードリンクを削除しても中身は残る(最後のリンクが消えるまでデータは消えない)

ハードリンクは強力な機能ですが、ファイル構造をしっかり理解してから使いましょう。

7. ハードリンクとシンボリックリンクの違い

7. ハードリンクとシンボリックリンクの違い
7. ハードリンクとシンボリックリンクの違い

似た名前でシンボリックリンク(symlink)というものがありますが、ハードリンクとは異なります。

種類 特徴 使い方
ハードリンク 実体を共有。中身は完全に同じ cp -lln
シンボリックリンク 元のファイルを参照するショートカットのようなもの ln -s

初心者にはcp -lの方が直感的に使いやすく、コピー代替として使える点がポイントです。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説