我有一个正在遍历目录树的 PowerShell 脚本,有时我在那里有硬链接(hard link)的辅助文件,这些文件不应该被处理。是否有一种简单的方法可以确定文件(即 System.IO.FileInfo
)是否为硬链接(hard link)?
如果没有,使用符号链接(symbolic link)(符号链接(symbolic link))会更容易吗?
最佳答案
试试这个:
function Test-ReparsePoint([string]$path) {
$file = Get-Item $path -Force -ea SilentlyContinue
return [bool]($file.Attributes -band [IO.FileAttributes]::ReparsePoint)
}
这是一个非常简单的实现,但它应该可以解决问题。请注意,这不区分硬链接(hard link)和符号链接(symbolic link)。在下面,他们都只是利用 NTFS reparse points , IIRC .
关于powershell - 找出文件是否是 PowerShell 中的符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/817794/