නාමාවලියක ඇති සියලුම සංකේතාත්මක සබැඳි ලැයිස්තුගත කරන්නේ කෙසේද


173

මගේ /var/www/ඩිරෙක්ටරියේ වර්ඩ්ප්‍රෙස් වෙත සම්බන්ධ වන සංකේතාත්මක සබැඳියක් මා සතුව ඇත . මම ඩිරෙක්ටරියේ ls -laසිට විධානය ක්‍රියාත්මක කරන විට /var/www/වර්ඩ්ප්‍රෙස් වෙත සබැඳිය නොපෙන්වයි. නාමාවලියක ඇති සියලුම සංකේතාත්මක සබැඳි ලැයිස්තුගත කිරීමට ක්‍රමයක් තිබේද?


Answers:


93

ඔබට භාවිතා කළ හැකි grepසමග lsවත්මන් නාමාවලියේ වර්තමාන සියලු සංකේතාත්මක සබැඳි ලැයිස්තුවට විධාන.

මෙය වත්මන් නාමාවලියෙහි ඇති සියලුම සබැඳි ලැයිස්තුගත කරනු ඇත.

ls -la /var/www/ | grep "\->"

6
ඔබ සතුව " ->" අඩංගු ගොනුවක් තිබේ නම් එය ව්‍යාජ ධනාත්මක ප්‍රති return ල ලබා දෙනු ඇත . සරල එකක් උත්සාහ කරන්නtouch "foo->"
සිල්වයින් පීනෝ

3
ඇයි නැත්තේ grepසමග ing ^l?
එලිරන් මල්කා

3
සුපුරුදු පරිදි, හොඳම පිළිතුර වන්නේ ඉහළම +
FractalSpace

හොඳයි! → .බෑෂ්_ලියාස්: alias listlinks='ls -l --color | grep "\->"'8-)
ෆ්‍රෑන්ක් නොක්

සමත් -Rකිරීමට lsආවර්තනික ලැයිස්තුව ලබා ගැනීමට.
ඉටාචි

330

විග්‍රහ lsකිරීම නරක අදහසක් ® , එවැනි අවස්ථාවක සරල දේකට වැඩි කැමැත්තක් දක්වන්න find:

find . -type l -ls

වත්මන් නාමාවලිය පමණක් සැකසීමට:

find . -maxdepth 1 -type l -ls

බැර: `ls -A` විධානයකින් ආපසු ලබා දුන් ගොනු නාම හඳුනා ගැනීමට මම කවචය සාදා ගන්නේ කෙසේද?


17
@ahnbizcad: එය 1(එකක්) නොව l(සබැඳිය)
සිල්වයින් පීනෝ

3
නියම පිළිතුර! මේ වගේ නාමාවලි මාර්ගයෙන් බැස නොයන ලෙස මම මගේ සකස් කළෙමි: find /<your_directory> -maxdepth 1 -type l -ls 2>/dev/null ස්තූතියි!
bgs

3
දැනට පවතින නාමාවලිය සඳහා (එනම් පුනරාවර්තන නොවේ ) එකතු කරන්න -maxdepth 1.
ජෝෂුවා පින්ටර්

1
@ සිග් 0 ඔබට භාවිතා කිරීමට අවශ්‍ය නැත, ඔබට awkබොහෝ විට මෙය අවශ්‍ය වනු ඇත:find . -maxdepth 1 -type l | sort -n
sobi3ch

1
-lsසොයා ගැනීමේ විධානයන් අවසානයේ කුමක් කරන්නේද ?
ගේබ්‍රියෙල් ස්ටැපල්ස්

5

POSIXly:

find ! -name . -prune -type l

!මෙම සන්දර්භය තුළ ඔබට පැහැදිලි කළ හැකිද ?
එම්ටීඑල් දේව්

TMtlDev !කොන්දේසි ගැලපීම ප්‍රතික්ෂේප කරයි, මෙහි ! -name .අර්ථය වත්මන් නාමාවලිය හැර අනෙක් සියල්ල ගැලපීමයි .
cuonglm

5

grep ඔබේ මිතුරා:

ls -lhaF | grep ^l   # list links
ls -lhaF | grep ^d   # list directories
ls -lhaF | grep ^-   # list files

ඩිරෙක්ටරි සහ ලිපිගොනු සඳහා lභාවිතා කරන ස්ථානයේ පර්ම් තීරුවේ ඇති සබැඳි නියෝජනය කරන "l" වලින් ආරම්භ වන රේඛා මෙය ලැයිස්තුගත කරයිd-


අනිෂ්ට ගොනු නාමයන් ෂෙල් කේතය එන්නත් කිරීමෙන් අවසන් විය හැකි බැවින් ක්‍රමලේඛිකව මෙම ක්‍රමය සමඟ කිසිවක් නොකරන්න. ආරක්ෂිත වීමට, යමෙක් findවිධානය සමඟ භාවිතා කළ යුතු අතර -exec, නල මාර්ගයට පිවිසෙන්නේ නම් xargs, findශුන්‍ය-අක්ෂර බෙදුම්කරු ආදාන ධජය සමඟ ඒකාබද්ධ වූ ශුන්‍ය-අක්‍ෂර බෙදුම්කරු ප්‍රතිදාන ධජය භාවිතා කළ xargsයුතුය.
එරික්

3

මෙය සංකේතාත්මකව සම්බන්ධිත සියලුම අයිතම (ඩර්ස් සහ එෆ්එන්එස්) නාමාවලියක නැවත ලබා දෙයි:

find . -maxdepth 1 -type l -print | cut -c3- | grep -v "\#"

කෙසේ වෙතත්, සත්‍ය සංකේතාත්මකව සම්බන්ධිත අයිතම වර්ග අතර වෙනස හඳුනා ගැනීම සඳහා:

ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep -v "/" | cut -d' ' -f1

සංකේතාත්මකව සම්බන්ධිත ගොනු නාම අයිතම පමණක් ලබා දෙයි. හා,

ls -lhaF | grep ^l | grep -v "\#" | cut -c42- | grep "/" | cut -d' ' -f1

සංකේතාත්මකව සම්බන්ධිත dirname අයිතම පමණක් ලබා දෙයි.


1

නාමාවලියක සංකේතාත්මක සබැඳි බැලීමට:

  1. ටර්මිනලයක් විවෘත කර එම නාමාවලියට යන්න.

  2. විධානය ටයිප් කරන්න:

    ls -la
    

    ඩිරෙක්ටරියේ ඇති සියලුම ලිපිගොනු සැඟවී තිබුණද මෙය දිගු ලැයිස්තු ගත කරයි.

  3. ආරම්භ වන ලිපිගොනු lඔබේ සංකේතාත්මක සම්බන්ධක ගොනු වේ.


1
-1: කාසියාගේ පිළිතුර දැනටමත් මෙය ආවරණය කරයි.
මුරු

0

ටයිප් කරන්න ls -lai, එය අනුරූපී ඉනෝඩ අංක සහිත සියලුම ලිපිගොනු සහ උප බහලුම් ලැයිස්තුගත කරනු ඇත. එකම ඉනෝඩ් අංකයක් සහිත ලිපිගොනු සබැඳි (දෘඩ හෝ මෘදු) බව ඔබ දනී. මෙම විසඳුම සංකේතාත්මක සබැඳි සඳහා ද ක්‍රියා කරයි.


1
ls -laiනැහැ නැහැ ගොනුව එහි පුරුක් සඳහා එම inode අංකය පෙන්වන්න. දෘ link සබැඳි මෙන් නොව, සංකේතාත්මක සබැඳි වලට වෙනමම ඉනෝඩ ඇතුළත් කිරීම් ඇත. මෙය පෙනෙන්නේ එයයි.
එලියා කගන්

0

පයිතන් සමඟද කළ හැකිය:

$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /path/to/dir

නියැදි ධාවනය:

$ python -c "import os,sys; print '\n'.join([os.path.join(sys.argv[1],i) for i in os.listdir(sys.argv[1]) if os.path.islink(os.path.join(sys.argv[1],i))])" /etc
/etc/vtrgb
/etc/printcap
/etc/resolv.conf
/etc/os-release
/etc/mtab
/etc/localtime

මෙය os.walkශ්‍රිතය හරහා පුනරාවර්තනය වීමට දීර් extended කළ හැකි නමුත් මා ඉහත පෙන්වා ඇති පරිදි තනි නාමාවලියක සබැඳි ලැයිස්තුගත කිරීම සඳහා සරල ලැයිස්තු උත්පාදනය භාවිතා කිරීම ප්‍රමාණවත් වේ.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.