web-dev-qa-db-ja.com

Windows Vistaまたは7ですべてのシンボリックリンクを見つけるにはどうすればよいですか?

WindowsVistaまたは7のNTFSファイルシステムですべてのシンボリックリンクを検索する方法を探しています。

特定のターゲットを指定して、それを指すシンボリックリンクがあるかどうかを確認できればさらに良いでしょうが、それらすべてを検索する方法も素晴らしいでしょう。

10
wojo

これが私がこれまでに見つけた最良の方法です:

dir /a:l /s

しかし、それは醜いです。ターゲット=>ソースまたは同様の形式で1行に1つのファイルを表示するリストが望ましいです。 SYMLINKのgrepは、複数行形式のためうまくいきません。/Bベアスイッチは、ターゲットファイル名以外は何も提供しません。

Grepは複数行のツールであることに注意してください。 -anを使用して前のn行と次のn行の両方を取得し、-Anを使用して次のn行だけを取得できます。たとえば、grep -A10 configureは、「configure」という単語を見つけた後、次の10行を取得します。 Wordの2つのインスタンスが3行離れて構成されている場合、合計14行を取得することになります。

15
wojo

Everything 検索が書き直されたため(2013年1月)、属性を検索できるようになりました。 「attrib:L」のクエリは、のすべてのシンボリックリンクを明らかにします。コンピュータ上のさまざまなタイプ。属性で並べ替えるには、[属性]列(Ctrl + Shift + 8)を表示します。

このタイプの検索を頻繁に行う場合、またはキーボードショートカットを割り当てたい場合は、その特定の属性検索([検索]、[フィルターに追加])用のフィルターを作成することもできます。

最初のattrib:検索が一時的にすべてをロックアップしているように見えましたが、数秒後に終了しました...このような強力なツールを少し待つ価値があります。

5
BJordan

試してみてください SageLinks -Windows用の小さなフリーウェアのオープンソースユーティリティです。すべてのシンボリックリンク、ジャンクション、ショートカットを見つけて再確認できます。

SageLinks Screenshot

2

無料のツールを試すことができます SysInternalsによるジャンクション

ドライブ上のすべてのシンボリックリンクを検索するには、ルートに移動して次のように入力します。

C:\> junction -s -q

-sはすべてのサブディレクトリを通過します

-qは、「アクセスが拒否されました」などのエラーを無視します。

これにより、Windowsが現在使用しているすべての再解析ポイントが得られます。

特定のファイルまたはフォルダーが再解析ポイントであるかどうかを確認する場合は、後にユーティリティ名とファイル/フォルダー名を入力するだけです。バックスラッシュを追加すると結果が変わる可能性があるため、フォルダ名には注意してください。

C:\> junction c:\apps

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\apps: JUNCTION
   Substitute Name: e:\dropbox\apps

C:\>
2
Sun

Win7のCygwin/bashスクリプト

c:\> cat find-dead-links.sh
#!/usr/bin/bash
find . -maxdepth 3 -type l -print0 |
while IFS=   read -r -d $'\0' file ;do
  [[ -e "$file" ]] && continue
  echo "Bad link $file"
done 
0
mosh

Windowsシステムでのすべてのファイル検索では、 Everything を使用することをお勧めします。超高速で非常に軽量です。

0
Mihkel

私もこの機能を探していましたが、他の場所では見たことがありません。 Python用のWindowsライブラリに追加しました。残念ながら、まだ熱心なPythonプログラマーでない場合は、すべてをインストールするためのいくつかの手順があります。

  1. Python 2.6.4をダウンロードしてインストールします。
  2. distribute-setupdistribute の一部)または ez_setupsetuptools の一部)をダウンロードして、スクリプトを実行します。これにより、パッケージの実行に必要なPythonの2つのパッケージマネージャーの1つがインストールされます。
  3. Easy_installを使用して、 jaraco.windows パッケージとその依存関係をインストールします。コマンドから-プロンプト:

バツ

\Python26\scripts\easy_install jaraco.windows

これらの手順を実行すると、\ python26\scripts\find-symlinks.exeまたは\ python26\scripts\find-symlinks-script.pyというスクリプトが作成されます。これらのスクリプトは、オプションのパス名を使用して実行し、シンボリックリンクを検索できます。シンボリックリンクを検索し、結果を1行ずつ報告します。この手順は、Windows7のクリーンインストールでテストしました。

> cmd /c mklink /d mylink \windows 
symbolic link created for mylink <<===>> \windows
> cmd /c mklink myfilelink \windows\notepad.exe
symbolic link created for myfilelink <<===>> \windows\notepad.exe

> \python26\scripts\find-symlinks
D .\mylink --> \windows
  .\myfilelink --> \windows\notepad.exe
0
Jason R. Coombs