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으로 유지되고 실제 폴더는 심볼릭 링크로 표시됩니다. 오류 수준을 신뢰할 수 없습니다.
문제 find
는 find "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