Узнайте, является ли файл символической ссылкой в ​​PowerShell

посмотрите мою новую библиотеку Serialize.Linq . Он сериализует выражения linq для json, xml и двоичных файлов.

23
задан Peter Mortensen 1 May 2011 в 08:31
поделиться

3 ответа

Попробуйте это:

function Test-ReparsePoint([string]$path) {
  $file = Get-Item $path -Force -ea SilentlyContinue
  return [bool]($file.Attributes -band [IO.FileAttributes]::ReparsePoint)
}

Это довольно минимальная реализация, но она должна сработать. Обратите внимание, что это не различает жесткую ссылку и символическую ссылку. Внизу они оба просто пользуются точками повторной обработки NTFS , IIRC .

34
ответ дан 28 November 2019 в 22:28
поделиться

Для тех, которые хотят проверить, является ли ресурс hardlink или символьной ссылкой:

(Get-Item ".\some_resource").LinkType -eq "HardLink"

(Get-Item ".\some_resource").LinkType -eq "SymbolicLink"
0
ответ дан 28 November 2019 в 22:28
поделиться

Мои результаты в Vista с использованием сценария PowerShell Кейта Хилла для тестирования символических и жестких ссылок:

c:\markus\other>mklink symlink.doc \temp\2006rsltns.doc
symbolic link created for symlink.doc <<===>> \temp\2006rsltns.doc

c:\markus\other>fsutil hardlink create HARDLINK.doc  \temp\2006rsltns.doc
Hardlink created for c:\markus\other\HARDLINK.doc <<===>> c:\temp\2006rsltns.doc

c:\markus\other>dir
 Volume in drive C has no label.
 Volume Serial Number is C8BC-2EBD

 Directory of c:\markus\other

02/12/2010  05:21 PM    <DIR>          .
02/12/2010  05:21 PM    <DIR>          ..
01/10/2006  06:12 PM            25,088 HARDLINK.doc
02/12/2010  05:21 PM    <SYMLINK>      symlink.doc [\temp\2006rsltns.doc]
               2 File(s)         25,088 bytes
               2 Dir(s)   6,805,803,008 bytes free

c:\markus\other>powershell \script\IsSymLink.ps1 HARDLINK.doc
False

c:\\markus\other>powershell \script\IsSymLink.ps1 symlink.doc
True

Он показывает, что символические ссылки являются точками повторной обработки и имеют установленный бит ReparsePoint FileAttribute, а жесткие ссылки - нет.

3
ответ дан 28 November 2019 в 22:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: