このページの本文へ

前へ 1 2 次へ

Windows Info 第389回

Windowsにおけるファイルリンクについてあらためて説明する

2023年07月23日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

リンクを削除する

 ハードリンクとシェルリンクは、対象がファイルそのものなので、通常のファイルと同じ扱いで削除ができる。ただし、1つのファイルに複数のハードリンクが存在する場合、ファイルの削除コマンド(DELコマンドやRemove-Itemコマンド)は、指定したリンクのみの削除となる。こうしてリンクが減っていき、最後のハードリンクに対して削除コマンドが適用されたとき、ファイル自体が削除される。

 シェルリンクはそれ自体が普通のファイルなので、リンクの削除は、シェルリンクファイル(.lnkファイル)を削除するだけでいい。シェルリンクは、エクスプローラー上でのみ有効なので、コマンドラインからは単なるファイルでしかない。

 シンボリックリンクの場合、リンク先がファイルなのかディレクトリなのかによってコマンドが異なる。同様にジャンクションの場合、対象がディレクトリであることを認識してコマンドを使う必要がある。

 cmd.exeでは、ファイルの削除には、DEL/DELETEあるいはERASEコマンドを使う。複数のコマンドがあるが機能は同じである。これに対して、ディレクトリの削除には、RMDIR/RDコマンドを使う。RDはRMDIRの省略形である。

 シンボリックリンクの場合も、リンク先がファイルの場合にはリンクの削除にはDELコマンドを、リンク先がディレクトリの場合には、リンクの削除にRMDIRコマンドを使い分ける必要がある。

Windowsにおけるファイルリンクについてあらためて説明する

 DELコマンドの場合、対象にディレクトリを指定すると、暗黙的に「\*」が仮定されるため、対象ディレクトリ内の消去という動作になる。このため、ディレクトリへのシンボリックリンクやジャンクションを消去する場合には、間違ってDELコマンドを使わないように注意が必要だ。

 PowerShellでは、過去にシンボリックリンクやジャンクションの扱いが正しくなかったことがあるが、現在のWindows PowerShell(Ver.5.1)、PowerShell(V 7.2)では、予想可能な振る舞いをするようになった。

 PowerShell/Windows PowerShellでは、rmもrmdirもともにRemove-Itemコマンドのエイリアスになっている。このRemove-Itemコマンドでは、シンボリックリンクやジャンクションを指定すると、リンクのみを消去するようになっている。

リンクを探す

 cmd.exeでは、ジャンクションとシンボリックリンクはDIRコマンドに「<JUNCTION>」「<SYMLINKD>」(シンボリック・リンクでディレクトリの場合)、「<SYMLINK>」(同ファイルの場合)と表示が出る。/Sオプションでサブディレクトリをすべて表示させ、ファイルにリダイレクトしたのち、これらの文字列を探す。

 ハードリンクは、cmd.exe上ではファイルごとに調べるしか方法がない。

fsutil hardlink list ファイルパス

というコマンドで指定したファイルにハードリンクがあれば、すべて表示させることができる。しかし、ファイルを1つ1つ指定して調べる必要がある。こうした用途には、PowerShellのほうが向いている。

 PowerShell/Windows PowerShellでは、

Get-ChildItem <起点パス> -Recurse | Where-Object LinkType -eq HardLink

として、ハードリンクを持つファイルを探すことが可能だ。最後の部分を「Junction」「SymbolicLink」とすることでジャンクションやシンボリック・リンクを探すことができる。

 シンボリックリンクは、簡単にファイルやディレクトリを他の場所から「持ってくる」ことができるため、慣れると多用しがちになる。多くのプログラムは、シンボリック・リンクをファイルやディレクトリとして扱ってくれるので問題はないのだが、バックアップや検索インデックス作成など、ソフトウェアによっては、シンボリック・リンクを意図的に排除、あるいはオプションで扱いを制御していることがあるので注意が必要だ

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン