අන්වර්ථයක් මගින් සෙවනැලි කරන ලද විධානයක් ක්‍රියාත්මක කරන්න


173

මට පහත දැක්වෙන අන්වර්ථ නාමය ඇති බව කියමු - alias ls='ls --color=auto'- මට lsවිකල්ප නොමැතිව සාමාන්‍ය අමතන්න අවශ්‍යයි . එය කළ හැකි එකම ක්‍රමය unalias, විධානය කර නැවත අන්වර්ථයද? එසේත් නැතිනම් යම් යම් උපක්‍රම හෝ ක්‍රියාමාර්ග තිබේද?


2
පහත දැක්වෙන පිළිතුරු කිහිපයක් පිළිබඳ සටහනක්: මෙය සිදු කිරීම සඳහා ඇති එකම ආරක්‍ෂිත ක්‍රමය “විධානය” වේ. උදාහරණයක් ලෙස, "." හෝ “ප්‍රභවය” ගොඩනංවන ලද ඒවා ස්ක්‍රිප්ට්-නිර්වචනය කළ ශ්‍රිතයක් මගින් අභිබවා යනු ඇත. "විධානය ." හෝ "විධාන ප්‍රභවය" යනු ස්ක්‍රිප්ට් අර්ථ දක්වා ඇති ශ්‍රිතය වෙනුවට ප්‍රභවය ආරක්ෂිතව ක්‍රියාත්මක කිරීමට ඇති එකම ක්‍රමයයි. බැක්ස්ලෑෂ් ක්‍රමය "\." ඇතුළුව වෙනත් විකල්ප කිසිවක් නැත, වැඩ, ඇත්ත වශයෙන්ම සම්පූර්ණ මාර්ගයක් නියම කිරීමෙන් ඔබට ආයාචනා කළ හැකි "/ බින් / ප්‍රභව" විකල්පයක් නොමැත.
ඩෙජේ ක්ලේටන්

Answers:


227

අන්වර්ථය අක්‍රීය කිරීම සඳහා ඔබට පසුපස කප්පාදුවක් උපසර්ග කළ හැකිය: \ls

සංස්කරණය කරන්න: එයම කළ හැකි වෙනත් ක්‍රම:

මයිකල්ටcommand ls අනුව "විධානය" භාවිතා කරන්න .

සම්පූර්ණ මාර්ගය භාවිතා කරන්න: uther/bin/ls අනුව .

විධානය උපුටා දක්වන්න: "ls"හෝ 'ls'මයිකල් අදහස් දැක්වීම අනුව.

එම පර්යන්ත සැසිය සඳහා ඔබට අන්වර්ථය තාවකාලිකව ඉවත් කළ හැකිය unalias command_name.


මෙය කිරීමට මගේ සම්මත ක්‍රමය මෙයයි.
ncmathsadist

ඉතා හොඳයි, tcsh සමඟද හොඳින් ක්‍රියා කරයි
ලෙවොන්

10
මෙම මාර්ගය ඉතා ප්රයෝජනවත් වේ. එය බයිපාස් කරන්නේ අන්වර්ථයන් මිස කාර්යයන් නොවේ, එය වෙනස් commandහෝ හෝ වෙනස් කරයි builtin.
මයිකල්

1
l\sඑකම දේ කරන බවක් පෙනේ . මෙම හැසිරීම දෝෂයක්ද?
නික්ලස් බී

5
එය "ලක්ෂණයකි". පුළුල් නොකළ අන්වර්ථ නාමයන් පමණි. එබැවින් ඔබට එය මිල ගණන් වලට දැමිය හැකිය, නැතහොත් ඔබ කැමති ඕනෑම තැනක බැක්ස්ලෑෂ් භාවිතා කරන්න. Bash අන්වර්ථ යොමුව බලන්න .
මයිකල්

82

ඒ මොකක්ද commandවිධානය සඳහා වේ.

උත්සාහ කරන්න

command ls

අන්වර්ථ නාම සහ ක්‍රියාකාරකම් මඟ හැරීමට මෙය කවචයට කියයි.

මේ ආකාරයට bash , zsh , සහ අළු / ඉරක් ආධාර කරයි.


2
හොඳම පිළිතුර, එය වඩාත්ම ඉහළට නොගන්නේ මන්ද? :) +1
0xC0000022L

12
බැක්ස්ලෑෂ් ක්‍රමය ලෙස එය අක්ෂර මෙන් 8 ගුණයක් එකතු කරන බැවිනි
ජොයෙල්ෆාන්

1
@STATUS_ACCESS_DENIED මෙයද tcsh සමඟ ක්‍රියා නොකරයි (එබැවින් අනුමාන වශයෙන් csh සමඟද නොවේ). `\` ක්‍රමය ක්‍රියාත්මක වේ
ලෙවොන්

3
බැක්ස්ලෑෂ් විශේෂාංගය ආරක්ෂිත නොවේ. ඒ හා සමාන නම් කරන ලද අන්වර්ථ නාමයන්ගෙන් එය ආරක්ෂාව සපයන අතර, ඒ හා සමාන නම් කරන ලද ශ්‍රිතයන්ගෙන් එය ආරක්ෂාව සපයන්නේ නැත.
ඩෙජේ ක්ලේටන්

3
O ජොයෙල්ෆාන් මම වැඩිපුර චරිත කිහිපයක් ඇති අතර මගේ ස්ක්‍රිප්ට් අනුගමනය කිරීමට හා සෑම කෙනෙකුටම වැඩ කිරීමට පහසු වනු ඇත. ගුප්ත කප්පාදුවක් වෙනුවට, එය බුද්ධිමත් නොවන, අතපසු කිරීමට පහසු, හොඳින් ලේඛනගත කර නොමැති, සහ කාර්යයන් මඟ හැරීම සඳහා ක්‍රියා නොකරයි.
ඩෙනිස්

19

අන්වර්ථය යනු නිර්වචනය කළ කෙටිමඟකි. මෙම උදාහරණයේ දී අන්වර්ථය අර්ථ දක්වා ඇත්තේ නූල් lsls --color=auto. ඔබට එම හැසිරීම අවශ්‍ය නොවන්නේ නම්, ඔබට lsනිරපේක්ෂ මාර්ගය භාවිතා කරමින් ද්විමය ඇමතිය හැකිය .

එබැවින් සාධාරණ ලෙස ක්‍රියාත්මක කිරීමෙන් /bin/lsවර්ණයෙන් තොරව ප්‍රතිදානය ලැබෙනු ඇත, මන්ද එය ඔබ අර්ථ දක්වා ඇති අන්වර්ථය නොවේ.

ඔබට අන්වර්ථය වෙනස් දෙයකට වෙනස් කළ හැකිය, නැතහොත් lsවර්ණ පරාමිතීන් නොමැතිව ක්‍රියාත්මක වන නව අන්වර්ථයක් එක් කළ හැකිය.


2
විධානය තිබෙන්නේ කොහේදැයි ඔබ දැනගත යුතුය. ඇතැම් පද්ධති මත, අතර අංශය /binහා /usr/binඅත්තනෝමතික වේ.
කීත් තොම්සන්

EKeithThompson ඒ සඳහා, ඔබට whichසමහර විධාන සඳහා භාවිතා කළ හැකිය : which ls.
cst1992

st cst1992: ඔබ භාවිතා කිරීමට යන්නේ නම් which(හෝ type), එය හරහා බැලීමක් කරයි $PATH; ඔබට මාර්ගය නියම කිරීමට වඩා භාවිතා කිරීමට lsහෝ භාවිතා කිරීමට ඉඩ ඇත \ls.
කීත් තොම්සන්

10

තවත් ක්‍රමයක් නම්, uther ගේ පිළිතුර මත ගොඩනැඟීම , ක්‍රියාත්මක කළ හැකි මාර්ගය ස්වයංක්‍රීයව සොයා ගැනීම සඳහා භාවිතා කිරීම $(which ...)හෝ `which ...`(බැක්ටික්ස් භාවිතා කිරීම ``). මෙය ක්‍රියාත්මක වන්නේ bash:

$(which ls)

`which ls`

නිසැකවම, a සමඟ විධානය උපසර්ග \කිරීම වඩා කෙටි වේ.

යාවත්කාලීන කිරීම : අන්වර්ථ විධානයක් මත `කුමන 'භාවිතා කරන්නේ කෙසේද යන්න අනුව ? , මෙය කිසිසේත් විශ්වාසදායක බවක් නොපෙනේ.


වරහන් මොනවාද? මම හිතන්නේ ඔබ අදහස් `which ls`කළේ ද්විමය කෙලින්ම ක්‍රියාත්මක කිරීමයි.
ඇමියාසින්

2
@amyassin: සින්ටැක්ස් දෙකම සමාන වේ. (BTW, කේත හැඩතල ගැන්වීම සඳහා ඔබ
බැක්ටික්ස් ලබාගත්තේ

ඇත්ත වශයෙන්ම (which ls)මා වෙනුවෙන් වැඩ කළේ නැත (උබුන්ටු 12.04 එල්ටීඑස් මත) සහ පසුපෙළ අමාරු නිසා මම ඔවුන්ගෙන් බේරුණෙමි: which `ඒ ls \`. එහි යෑමට විශාල සංස්කරණයක් අවශ්‍ය විය :)
amyassin

1
@ user946850 "කේත පරාසයක් තුළ වචනානුසාරයෙන් බැක්ටික් අක්‍ෂරයක් ඇතුළත් කිරීමට, ආරම්භක හා සංවෘත පරිසීමක ලෙස ඔබට බහු පසුබිම් භාවිතා කළ හැකිය". මූලාශ්‍රය: සලකුණු කිරීමේ යොමුව .
මයිකල්

@amyassin: ඔබ එය එකතු කළාද $?
krlmlr

2

පුද්ගලිකව, මම විධාන වලට සමාන නම් සහිත අන්වර්ථ නාම නිර්වචනය කිරීමෙන් වැළකී සිටිමි, එබැවින් lsසෑම විටම සත්‍ය විධානය ක්‍රියාත්මක කරයි. මම වගේ විකල්ප වල විවිධ සංයෝජන සඳහා යොමුවීම් හෝ ක්රියාවන් ඇති l, llහා lg. (මෙයින් අදහස් කරන්නේ unalias lsමගේ .bashrcහෝ .cshrc. මට අවශ්‍ය බවයි.)

මෙහෙයුම් පද්ධතියේ උපකල්පන මා වඩාත් කැමති කුමන විකල්පයන්ද යන්න ( lsවිධානයෙහි නිර්මාණකරුවන්ගේ උපකල්පන ඉක්මවා යාම ) මගේ පෞද්ගලික රුචි අරුචිකම් සමඟ නොගැලපේ. පෙනුමට මා අකමැති වන අතර ls --color=auto, එහි පැහැදිලි බව කළු-සුදු-සුදු සහ සුදු-කළු-කළු අතර බොහෝ සෙයින් වෙනස් විය හැකිය.

YMMV, සහ අනෙකුත් විසඳුම් ඇත්ත වශයෙන්ම දැන ගැනීමට තවමත් හොඳයි.


1

ලොකු අකුරින් විධානය ටයිප් කිරීම හරියට වැඩ කරන බවක් පෙනේ LS.


4
කුමන කවචයේද, කුමන මෙහෙයුම් පද්ධතියද, කුමන පර්යන්තයද?
මයිකල්

1
Ik මයිකල් "sl" පැකේජයක් ඇත, එය "sl" "ls" ලෙස සපයයි. උබුන්ටු වල ඇති ඉඟි බාෂ් ද පවසන්නේ "එල්එස්" සපයනු ලබන්නේ "ස්ලැබ්" විසිනි.
ඉස්කාටා

1
මෙය මැක් ඕඑස් එක්ස් 10.7 හි බාෂ් 4 (ෆින්ක් සමඟ ස්ථාපනය කර ඇත). මම rm සහ grep වැනි අන්වර්ථ කර ඇති වෙනත් විධානයන් සඳහාද එය ක්‍රියා කරයි.
asmeurer

3
එය විහිළුවක් පමණයි :) mn පිටුවෙන්:LS - display animations aimed to correct users who accidentally enter LS instead of ls.
amyassin

7
මම සිතන්නේ මෙය මැක් ඕඑස් එක්ස් සඳහා ක්‍රියා කරන බැවින් එහි ගොනු පද්ධතිය පෙරනිමියෙන් අක්ෂර සංවේදී නොවන බැවිනි. එය වෙනත් යුනික්ස් මත ක්‍රියා නොකරනු ඇත.
ජැන්ඩර්
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.