Checking where a symbolic link points at in Windows 7
The dir command dir /a
can do this:
2012-12-26 09:30 PM <DIR> .
2012-12-26 09:30 PM <DIR> ..
2012-12-26 09:30 PM 0 a.txt
2012-12-26 09:30 PM <SYMLINK> link.txt [a.txt]
Alternatively, you can use Windows Explorer:
Right click column, More, Link Target
Copied from StackOverFlow, I just used this line, and it works
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Explanation:
From MSDN about FSUtil : Performs tasks that are related to file allocation table (FAT) and NTFS file systems, such as managing reparse points, managing sparse files, or dismounting a volume. If it is used without parameters, fsutil displays a list of supported subcommands.
For our use, we just care that it outputs a line that has "Symbolic Link" in it, if it's symbolic, which we then find
, and if find
succeeds, we output one thing, if it doesn't, we output something else.
Notes:
- The quotes around the folder name are required if the path has spaces in it.
- It gives the same output whether the folder doesn't exist, or isn't a symlink, use with caution.
Using PowerShell, on at least Windows OS, you can find symbolic-links in any given directory, such as the following:
Get-ChildItem 'C:\nodejs\bin\' | Where-Object {$_.LinkType -eq 'SymbolicLink'}
A more concise alternative would be to use Get-ChildItem
's alias ls
:
ls 'C:\nodejs' -Attributes ReparsePoint -Recurse
And you can get relevant information on a symbolic-link by doing any of the following:
Get the file item and output its Target property. Target being the "value" of the symbolic-link. In an addition, method or command signatures for creating symlinks when juxtaposing between operating systems, the arguments names of: 'target', 'path' and/or 'value' may hold different meanings than another method signature on a different OS.
E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Target
E:\AIT\out\dependency_symlink.cmd
Get the file item and output its LinkType property. An item with a LinkType value of SymbolicLink means that its, well, symbolic.
E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty LinkType
SymbolicLink
Get the file item and output its Mode property. An item with l
in the Mode value indicates that it is a symbolic-link.
E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Mode
-a---l
Get the file item and output its Attributes property. An item attributed with a ReparsePoint value maybe indicative to a symbolic-link.
E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Attributes
Archive, ReparsePoint