উইন্ডোজ 7 এ প্রতীকী লিঙ্কটি কোথায় রয়েছে তা পরীক্ষা করা হচ্ছে


24

উইন্ডোজ In-এ, আমি কোনও ফাইলটি একটি প্রতীকী লিঙ্ক কিনা তা কীভাবে পরীক্ষা করতে পারি, কোনও ফোল্ডারটি কোনও জংশন হয় কিনা এবং কীভাবে তারা চিহ্নিত করতে পারে তা আমি কীভাবে পরীক্ষা করতে পারি (যদি তারা সিমলিংক / জংশন হয়)। এক্সপ্লোরার এবং কমান্ড লাইনে উভয়ই।

কমান্ড লাইন থেকে এটি করার একটি উপায় থাকা খুব গুরুত্বপূর্ণ, যখন আপনি কোনও ফোল্ডার গাছের সঠিক প্রতিলিপি তৈরি করতে চান তখন অন্য কম্পিউটারে কীভাবে প্রতীকী লিঙ্কগুলি নকল করতে হয় তা জানতে।

আমি যদি কোনও ফাইলের ডানদিকে ক্লিক করি এবং "সম্পত্তিগুলি" পরীক্ষা করি তবে আমি এটি কোনও প্রতীকী লিঙ্কের কোনও ইঙ্গিত পাই না।

উত্তর:


26

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]

বিকল্পভাবে, আপনি উইন্ডোজ এক্সপ্লোরার ব্যবহার করতে পারেন:

Right click column, More, Link Target

এটি উইন্ডোজ 7 এ কাজ করে না (মাইক্রোসফ্ট উইন্ডোজ [সংস্করণ 6.1.7601])
গঞ্জালেজি

1
@ অ্যাজোনজালেজি হ্যাঁ, এটি করে। এটি আমি উইন্ডোজ 7 এর সাথে ফিরে কাজ করেছি যখন আমি এটি পোস্ট করেছি এবং এটি এখন খুব কার্যকর হয়
স্টিভেন পেনি

নতুন ব্যবহারকারীদের কাছে সম্ভবত এটি সুস্পষ্ট নয়, এটি একটি কমান্ড লাইন সমাধান। ব্যবহারকারীর একটি কমান্ড প্রম্পট খুলতে হবে, তারপরে ডিরেক্টরিটি (সিডি কমান্ড ব্যবহার করে) প্রতীকী লিঙ্কযুক্ত ডিরেক্টরিতে পরিবর্তন করতে হবে, তারপরে ডিআইআর কমান্ডটি টাইপ করুন এবং 'এন্টার' কী টিপুন। ভুল ডিরেক্টরিতে ডিআইআর কমান্ড চালানো একটি সাধারণ ভুল। তবে বোধগম্য, যদি না আপনি নিশ্চিত হন যে কোন ডিরেক্টরিতে কোনও সিমিলিংক রয়েছে (সর্বদা স্পষ্ট নয়, কারণ উইন্ডোজ জিইউআই আপনাকে স্পষ্টভাবে বলতে পারে না যে কোনও নির্দিষ্ট ডিরেক্টরিতে কোনও সিমলিংক বা জংশন রয়েছে কিনা)। একটি শর্টকাট লিখুন আছে দেখুন ফাইল ফোল্ডার পরিবর্তে SHORTCUT করতে
এড 999

2
লিঙ্ক লক্ষ্য ক্ষেত্রটি উইন্ডোজ windows
রোনেন ফেস্টিংগার

1
কমান্ড লাইন থেকে আপনার টাইপ করা উচিত dir /aতারপর এন্টার টিপুন। আপনি যদি / এ অন্তর্ভুক্ত না করেন, উইন্ডোজগুলি জংশন পয়েন্টগুলি তালিকাভুক্ত করে না। আপনি ডিরেক্টরিতে dirএবং dir /aডিরেক্টরিতে পার্থক্যটি দেখতে পারেন\Users\YourUsername
পলাস

4

স্ট্যাকওভারফ্লো থেকে অনুলিপি করা হয়েছে , আমি কেবল এই লাইনটি ব্যবহার করেছি এবং এটি কার্যকর হয়

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

ব্যাখ্যা :

এমএসডিএন থেকে এফএসইটিিল সম্পর্কে: ফাইল বরাদ্দ সারণি (এফএটি) এবং এনটিএফএস ফাইল সিস্টেমের সাথে সম্পর্কিত এমন কার্য সম্পাদন করে যেমন রিসার্স পয়েন্টগুলি পরিচালনা করা, স্পার্স ফাইল পরিচালনা করা, বা ভলিউম খারিজ করা। যদি এটি প্যারামিটার ছাড়াই ব্যবহার করা হয় তবে fsutil সমর্থিত সাবকম্যান্ডের একটি তালিকা প্রদর্শন করে।

আমাদের ব্যবহারের জন্য, আমরা কেবল যত্ন নিই যে এটিতে একটি চিহ্ন রয়েছে যা "সিম্বলিক লিঙ্ক" রয়েছে, এটি যদি প্রতীকী হয়, যা আমরা তখন find, এবং যদি findসফল হয়, আমরা একটি জিনিস আউটপুট দেই, যদি তা না হয় তবে আমরা অন্য কিছু আউটপুট পাই।

দ্রষ্টব্য :

  • যদি পাথটিতে ফাঁকা স্থান থাকে তবে ফোল্ডারের নামের চারপাশে উদ্ধৃতিগুলি প্রয়োজনীয়।
  • সাবধানতার সাথে ফোল্ডারটি উপস্থিত না থাকলে বা একটি সিমলিংক নয় কিনা তা একই আউটপুট দেয়।

2

কমপক্ষে উইন্ডোজ ওএসে পাওয়ারশেল ব্যবহার করে আপনি নিম্নলিখিত প্রদত্ত যে কোনও ডিরেক্টরিতে প্রতীকী-লিঙ্কগুলি খুঁজে পেতে পারেন:

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

এর আরও সংক্ষিপ্ত বিকল্পটি হ'ল Get-ChildItemউপনামের ব্যবহার ls:

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

এবং আপনি নিচের যে কোনও একটি করে প্রতীকী-লিঙ্কে প্রাসঙ্গিক তথ্য পেতে পারেন:

ফাইল আইটেমটি পান এবং এর টার্গেট সম্পত্তি আউটপুট পান । প্রতীকী-লিঙ্কের "মান" হওয়ার লক্ষ্য। অতিরিক্ত হিসাবে, অপারেটিং সিস্টেমের মধ্যে জুস্টপোসিং করার সময় সিমলিংকগুলি তৈরি করার জন্য পদ্ধতি বা কমান্ড স্বাক্ষরগুলি: 'টার্গেট', 'পাথ' এবং / অথবা 'মান' এর যুক্তিগুলির নামগুলি একটি ভিন্ন ওএসে অন্য পদ্ধতি স্বাক্ষরের চেয়ে আলাদা অর্থ ধারণ করতে পারে।

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

ফাইল আইটেমটি পান এবং এর লিঙ্কটাইপ সম্পত্তি আউটপুট করুন । সিম্বলিকলিংকের একটি লিঙ্কটাইপ মানযুক্ত আইটেমটির অর্থ এটি, ভাল, প্রতীকী।

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

ফাইল আইটেমটি পান এবং এর মোড সম্পত্তি আউটপুট পান । 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

1

fsutilকোনও আইটেম প্রতীকী লিঙ্ক কিনা তা পরীক্ষা করতে ব্যবহার করবেন না। প্রথমে কারণ ত্রুটিযুক্তটিতে ত্রুটি রয়েছে, তাই কখনও কখনও এটি 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 এর সাথে প্রাপ্ত বৈশিষ্ট্যগুলি হ'ল "দ্রাৎস্কলিট" এবং "এল" প্রতীকী লিঙ্কের জন্য।


0

সিমলিংকগুলি সংরক্ষণ করতে, আপনার প্রিয় ফোল্ডারগুলিকে প্রথম লাইনে যুক্ত করতে এখানে একটি সাইগউইন বাশ স্ক্রিপ্ট রয়েছে

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

0

পাওয়ারশেলে:

dir | select Name, LinkType

2
বিশেষত কারণ এটি একটি পুরানো প্রশ্ন যা ইতিমধ্যে ভাল উত্তর পেয়েছে, আপনার উত্তরটি কী যুক্ত করে এবং আদেশের প্রতিটি অংশ কী করছে তা ব্যাখ্যা করার জন্য এটি আরও সহজ করার সহজ উপায়।
music2myear

0

সমস্ত সুরক্ষা @ সুরক্ষা এবং প্রাইভেসিগুরু , [সেন্টিমিটার]

সম্পূর্ণ ব্যাচের স্ক্রিপ্ট / ফাংশন যা ফোল্ডারে ml | সিমিলিংক reads পড়বে এবং তাদের এবং তাদের টার্গেটের সাথে আউটপুট তালিকা list

@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

0

আপনি যদি সত্যিই fsutil ব্যবহার করতে চান তবে আপনি ইরোলভেল থেকে ব্যর্থতা রোধ করতে উভয় প্রযুক্তি ব্যবহার করতে পারেন। (আমি ভেরিলেভেলটি পুনরায় সেট করতে ভার> নুল ব্যবহার করি)

:function_is_symlink_file_folder item_to_test result
rem 0 = Error
rem 1 = Symlink
rem 2 = File
rem 3 = Folder

:function_is_symlink_file_folder
    setlocal enabledelayedexpansion
    set item_to_test=!%~1!
    set /a result=0
    for %%i in ("%item_to_test%") do set attributes=%%~ai
    set attribute_1=%attributes:~0,1%
    set attribute_9=%attributes:~8,1%
    ver >nul
    fsutil reparsepoint query "%item_to_test%" >nul
    if %errorlevel% == 1 (
        if "%attribute_1%" == "d" (
            set /a result=3
        ) else (
            set /a result=2
        )
    ) else (
        if "%attribute_9%" == "l" (
            set /a result=1
        ) else (
            if "%attribute_1%" == "d" (
                set /a result=3
            ) else (
                set /a result=2
            )
        )
    )
    endlocal & set /a %~2=%result%
goto :eof
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.