Windows 7에서 기호 링크가 가리키는 위치 확인

Windows 7에서 파일이 심볼릭 링크인지 여부를 확인하고 폴더가 정션인지 여부를 확인하는 방법과 파일이 가리키는 위치를 확인하는 방법 (symlink / junction 인 경우) 탐색기와 명령 줄 모두에서.

폴더 트리의 정확한 복제본을 만들려고 할 때 다른 컴퓨터에서 심볼릭 링크를 복제하는 방법을 알기 위해서는 명령 줄에서 수행 할 수있는 방법이 매우 중요합니다.

파일을 마우스 오른쪽 버튼으로 클릭하고 “속성”을 확인하면 파일이 심볼릭 링크라는 표시를 찾을 수 없습니다.



답변

dir 명령은 dir /a 이 작업을 수행 할 수 있습니다

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]

또는 Windows 탐색기를 사용할 수 있습니다.

Right click column, More, Link Target


답변

StackOverFlow 에서 복사하여 방금이 줄을 사용했으며 작동합니다.

fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link

설명 :

에서 MSDN 파일 할당 테이블 (FAT) 및, 재분석 지점을 관리하는 스파 스 파일을 관리하거나 볼륨을 마운트 해제와 같은 NTFS 파일 시스템에 관련된 수행합니다 작업 : FSUtil에 대해. 매개 변수없이 사용하면 fsutil은 지원되는 하위 명령 목록을 표시합니다.

우리는 사용하기 위해 “심볼릭 링크”가있는 라인을 출력하고, 그것이 심볼릭이라면 find, find성공하면, 한 가지를 출력하고, 그렇지 않으면 다른 것을 출력합니다.

참고 사항 :

  • 경로에 공백이 있으면 폴더 이름을 따옴표로 묶어야합니다.
  • 폴더가 존재하지 않거나 심볼릭 링크가 아닌지 여부에 관계없이 동일한 출력을 제공합니다.

답변

최소한 Windows OS에서 PowerShell을 사용하면 다음과 같은 지정된 디렉토리에서 기호 링크를 찾을 수 있습니다.

Get-ChildItem 'C:\nodejs\bin\' | Where-Object {$_.LinkType -eq 'SymbolicLink'}

더 간결한 대안은 Get-ChildItem의 별칭 을 사용하는 것입니다 ls.

ls 'C:\nodejs' -Attributes ReparsePoint -Recurse

다음 중 하나를 수행하여 심볼릭 링크에 대한 관련 정보를 얻을 수 있습니다.

파일 항목을 가져 와서 Target 속성을 출력하십시오 . 대상은 심볼릭 링크의 “값”입니다. 또한 운영 체제 간 병치시 심볼릭 링크를 작성하기위한 메소드 또는 명령 시그니처에서 인수 이름 ‘target’, ‘path’및 / 또는 ‘value’는 다른 OS에서 다른 메소드 시그니처와 다른 의미를 가질 수 있습니다.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Target
E:\AIT\out\dependency_symlink.cmd

파일 항목을 가져 와서 LinkType 속성을 출력하십시오 . LinkType 값이 SymbolicLink 인 항목은 그 상징적임을 의미합니다.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty LinkType
SymbolicLink

파일 항목을 가져 와서 Mode 속성을 출력하십시오 . l모드 값에 있는 항목은 해당 항목이 심볼릭 링크임을 나타냅니다.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Mode
-a---l

파일 항목을 가져 와서 속성 속성을 출력하십시오 . 아이템은 ReparsePoint 값 기인 어쩌면 심볼릭 링크를 나타내는.

E:\AIT> Get-Item -Path 'C:\nodejs\bin\ionic.cmd' | Select-Object -ExpandProperty Attributes
Archive, ReparsePoint


답변

fsutil항목이 기호 링크인지 여부를 확인하는 데 사용하지 마십시오 . 처음에는 errorlevel에 오류가 있기 때문에 때때로 0으로 유지되고 실제 폴더는 심볼릭 링크로 표시됩니다. 오류 수준을 신뢰할 수 없습니다.

문제 findfind "Symbolic Link"영어로는 가능하지만 다른 언어로는 불가능 하기 때문 입니다.

좋은 방법은 속성에서 검색하는 것입니다.

for %%i in ("%file_to_test%") do set attribute=%%~ai
set attribute=%attribute:~8,1%
if "%attribute%" == "l" (
    echo It's a symlink!
) else (
    echo Damned! It's real!
)

% a가있는 속성은 “drahscotlep”이고 “l”은 기호 링크입니다.


답변

심볼릭 링크를 저장하고 좋아하는 폴더를 첫 번째 줄에 추가하는 cygwin bash 스크립트

find c:/ C:/Users/$USERNAME/SendTo C:/Users/$USERNAME/Desktop \
      -maxdepth 2 -type l \
      -printf 'mklink\t/D\t"%p"\t"%l"\n' | \
  perl -pne '\
      s!/cygdrive/(\w)/!\1:/!g;\
      s,/a/,/%USERNAME%/,g;\
      1;' | \
  sort -f | uniq  > restore-links.cmd


답변

Powershell에서 :

dir | select Name, LinkType


답변

@SecurityAndPrivacyGuru의 모든 크레딧 , [cmd]

폴더의 symlink {| s}를 읽고 해당 경로 및 대상 경로와 함께 목록을 출력하는 완전한 배치 스크립트 / 기능

@echo off
setlocal enableExtensions enableDelayedExpansion
cd /D "%~dp0"
set br=^


rem br;


set "pafIf=<<pafToSymlink|pafToFolder>>"
set "gIfZsymLink="
for /f "tokens=*" %%q in ('dir "!pafIf!" /al /b') do (
    for /f "tokens=2 delims=[]" %%r in ('dir /al ^| findstr /i /c:"%%q"') do (
        set "gIfZsymLink=!gIfZsymLink!%%~fq>%%r!br!"
    )
)
set "gIfZsymLink=!gIfZsymLink:~0,-1!"
rem echo "!gIfZsymLink!"

for /f "tokens=1,2 delims=>" %%q in ("!gIfZsymLink!") do (
    echo symlink: %%q , filepath: %%r
)


:scIn
rem endlocal
pause
rem exit /b