如何在Windows Vista或7中找到所有符号链接?


10

我正在寻找一种方法来搜索Windows Vista或7上NTFS文件系统上的所有符号链接。

如果我可以指定一个特定的目标以查看它是否有指向它的符号链接,那就更好了,但是一种搜索所有目标的方法也很好。

Answers:


15

到目前为止,这是我找到的最好方法:

dir /a:l /s

但这很丑。我希望清单以target => source或类似的格式每行显示一个文件。由于多行格式,对SYMLINK的抓取效果不佳。/ B裸开关也只提供目标文件名。

请注意,grep是一种多行工具。您可以使用-an捕获前n行和后n行,使用-An捕获后n行。例如,grep -A10 configure将在找到单词“ configure”之后抓取接下来的十行。如果您有2个单词的实例分别配置3行,那么您最终将总共获得14行。


5

由于所有搜索都已被重写(2013年1月),因此您现在可以搜索属性。查询“ attrib:L ”将显示计算机上各种类型的所有符号链接。显示属性列(Ctrl + Shift + 8)以按属性排序。

如果您经常进行这种类型的搜索或想要分配键盘快捷键,则还可以为该特定属性搜索(搜索,添加到过滤器)创建过滤器。

我确实注意到了最初的属性:搜索似乎暂时锁定了所有内容,但几秒钟后完成了……值得花这么一点时间来等待如此强大的工具。


2

尝试使用SageLinks-一个用于Windows的小型免费开源工具,它可以查找并重新检查所有符号链接以及连接和快捷方式:

SageLinks屏幕截图


您可以添加一些有关链接的信息,而不只是图片吗?费用,如何找到它,与它有联系等等?
加拿大卢克

这是带有免费开源工具的GitHub页面的链接,该实用工具可根据该问题查找(并检查其有效性)Windows XP或更高版本中的所有符号链接。
尼古拉·拉斯波波夫

太棒了,您可以编辑将其添加到答案中吗?它可以帮助未来的访客更快地知道这是否是个好答案
Canadian Luke

好又快。但是在win7中,像c:/ a // b这样的NTFS硬链接可以正常工作。sagelink将其标记为无效。Win7允许同时使用斜杠,反斜杠和超斜杠。
莫什(Mosh)

不允许。请说明您如何创建此类链接?
尼古拉·拉斯波波夫

2

您可以尝试使用SysInternals的免费工具Junction

要搜索驱动器上的所有符号链接,请转到根目录并键入:

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:\>

0

对于Windows系统上的所有文件搜索,我建议使用Everything。它超快且非常轻巧。


一切都很整洁,但似乎无法通过Windows结合点,符号链接等进行过滤
。– wojo

0

我也一直在寻找这种功能,而在其他地方都没有看到它。我已将其添加到Windows的Python库中。不幸的是,如果您还不是狂热的Python程序员,则需要执行一些步骤来安装所有组件。

  1. 下载并安装Python 2.6.4。
  2. 下载分发-设置(的一部分分发)或ez_setup(部分setuptools的),然后运行该脚本。这将安装我的程序包要求运行的两个Python程序包管理器之一。
  3. 使用easy_install安装jaraco.windows软件包及其依赖项。在命令提示符下:

X

\Python26\scripts\easy_install jaraco.windows

完成这些步骤之后,您应该拥有一个名为\ python26 \ scripts \ find-symlinks.exe或\ python26 \ scripts \ find-symlinks-script.py的脚本,您可以使用可选路径名执行该脚本以搜索符号链接。它将搜索符号链接并报告结果,每行一行。我在Windows 7的全新安装上测试了此过程。

> 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

适用于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 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.