“-2” (යටි ඉරෙන් ආරම්භ වන) නාමයක් සහිත නාමාවලියකට සීඩී කරන්නේ කෙසේද?


176

මට නාමාවලියක් ඇත:

-2

මට එයට සීඩී කිරීමට අවශ්‍ය නමුත් සීඩී පැමිණිලි කරයි:

bash: cd: -2: invalid option

කිසිදු සාර්ථකත්වයක් නොමැතිව, මම උත්සාහ කළෙමි:

cd "-2"
cd '-2'
cd \-2

විසඳුමක් තිබේද?

සංස්කරණය කරන්න: mc වැනි ගොනු බ්‍රව්සර් සේවාදායකයේ නොමැත.


Answers:


282

අවම වශයෙන් ක්‍රම දෙකක්:

  1. --තර්කය භාවිතා කරන්න .

    cd -- -2
    

    මෙය GNU මෙවලම් වලට පොදු සම්මුතියක් භාවිතා කරයි, --එය විධාන රේඛා විකල්පයක් ලෙස පසුව පෙනෙන කිසිවක් සලකන්නේ නැත .

    ලෙස commenter සඳහන් කල පරිදි, මෙම සමුළුව ද ඇත ද POSIX සම්මත අර්ථ :

    පෙරනිමි හැසිරීම: මෙම කොටස "කිසිවක් නැත" ලෙස ලැයිස්තුගත කර ඇති විට, එයින් අදහස් වන්නේ ක්‍රියාත්මක කිරීම කිසිදු විකල්පයකට සහාය නොදක්වන බවයි. විකල්පයන් නොපිළිගන්නා, නමුත් ක්‍රියාකාරීත්වය පිළිගන්නා සම්මත උපයෝගිතා, "--"ඉවත දැමිය යුතු පළමු තර්කය ලෙස හඳුනා ගනී .

    හඳුනා "--"ගැනීම සඳහා අවශ්‍යතාවය වන්නේ අනුකූලතා යෙදීම් මඟින් ක්‍රියාත්මක කිරීම දිගුවක් ලෙස ලබා දිය හැකි ඕනෑම අත්තනෝමතික විකල්පයන්ගෙන් ඔවුන්ගේ ක්‍රියාකාරිත්වය ආරක්ෂා කර ගැනීමට ක්‍රමයක් අවශ්‍ය වන බැවිනි. නිදසුනක් ලෙස, සම්මත උපයෝගීතා foo කිසිදු විකල්පයක් නොගෙන ලැයිස්තුගත කර ඇත්නම් සහ එයට ප්‍රමුඛ හයිපනයක් සහිත මාර්ග නාමයක් ලබා දීමට අවශ්‍ය යෙදුම නම්, එය ආරක්ෂිතව පහත පරිදි කළ හැකිය:

    foo -- -myfile
    

    දිගුවක් ලෙස භාවිතා කරන -m සමඟ ඇති ගැටළු වළක්වා ගන්න .

    මෙන්ම :

    මාර්ගෝපදේශ 10: විකල්පයේ අවසානය දැක්වෙන
    පරාමිතිය ලෙස තර්කය --පිළිගත යුතුය. පහත දැක්වෙන ඕනෑම තර්ක '-'චරිතයෙන් ආරම්භ වුවද ඒවා ක්‍රියාකාරී ලෙස සැලකිය යුතුය . මෙම --තර්කය විකල්පයක් ලෙස හෝ කර්තව්ය ලෙස භාවිතා කල යුතු නොවේ.

  2. මාර්ගය පැහැදිලිව සඳහන් කරන්න:

    cd ./-2
    

    මෙය වත්මන් නාමාවලිය ( .) ආරම්භක ස්ථානය ලෙස පැහැදිලිව නම් කරන මාර්ගය නියම කරයි .

    cd $(pwd)/-2
    cd /absolute/path/to/-2
    

    මේවා ඉහත සඳහන් වෙනස්කම් වේ. එවැනි වෙනස්කම් ගණනාවක් කළ හැකි ය; ඒ සියල්ල සොයා ගැනීම සඳහා මම එය පා er කයාට අභ්‍යාසයක් ලෙස තබමි.


23
එය GNU පමණක් නොවේ, එය POSIX ප්‍රමිතියේ කොටසකි. බලන්න 1.11 උපයෝගිතා විස්තරය Defaults සහ 12.2 උපයෝගිතා වාග් රීතිය මාර්ගෝපදේශ (# 10 මාර්ගෝපදේශනයන්). සිට cdපිටුව "මෙම cdඋපයෝගීතාවය ... 12.2 කොටස අනුකූල ය".
ඩියෙට්‍රික් එප්

දැන් මට කුතුහලය දනවන නාමාවලියකට සීඩී කරන්නේ කෙසේද -!
sergiol

2
@sergiol එකම ආකාරයට.
මයිකල් හැම්ප්ටන්

1
ආර්ට්බී: නැත. උපුටා දැක්වීම ක්ෂේත්‍ර බෙදීමට බලපායි. ඒ නිසා "hello world"එක් තර්කයක් වන නමුත් hello worldදෙකක් වන අතර, "-2"ම ය -2.
ඩියෙට්‍රික් එප්

1
@sergiol: එක්කෝ cd -- --හෝ cd ./--වැඩ කළ යුතුය.
කීත් තොම්සන්

49

මෙය ක්‍රියාත්මක විය යුතුය:

cd -- -2 

- එයින් අදහස් කරන්නේ තවත් විකල්පයක් නොමැති බවයි


26

'-2' වත්මන් නාමාවලියෙහි තිබේ නම් මෙය ක්‍රියාත්මක වේ.

    cd ./-2

ටයිප් කිරීමෙන් සහ ටැබ් එබීමෙන් ඔබට ස්වයංක්‍රීයව සම්පූර්ණ කළ හැකිය.


11

cd /home/...../-2 ද ක්‍රියා කරයි. ප්‍රවේශ වීමට සම්පූර්ණ මාර්ගය දෙන්න.


7

සම්පුර්ණ කිරීම සඳහා, ඔබ මෙම නාමාවලිය ඉවත් කිරීමට / මකා දැමීමට කැමති නම් ඔබට පහත විධානය භාවිතා කළ හැකිය:

rm -r -- -2

... සහ අනුපූරකය සඳහා, මම කිසි විටෙකත් එසේ නොකරමි, ඒ වෙනුවට මම mc වැනි චිත්‍රක මෙවලමක් භාවිතා කරමි, නැතහොත් මම මුලින්ම නාමාවලිය නැවත නම් කරමි.
නික්

-1

මෙම ප්‍රශ්නයට දැනටමත් පිළිතුරු ලැබී ඇති බව මම දනිමි. මගේ වැනි තත්වයක් යමෙකුට තිබේ නම්, මෙය ඔවුන් සඳහා ය:

මම ජාවා යෙදුමක් ධාවනය කළ අතර එය ආරම්භ වන නාමාවලියක් සොයමින් <path>සිටියෙමි, යෙදුම ධාවනය කිරීමට පෙර එය නිසි මාර්ගයෙන් ප්‍රතිස්ථාපනය කිරීමට මට සිදු විය. කෙසේ වෙතත්, මට එය කිරීමට අමතක විය. යෙදුම නමින් නාමාවලියක් නිර්මාණය කළේය <path>.

මම උත්සාහ කළෙමි cd <path>- මට දෝෂයක් ලබා දුන්නා "-බෑෂ්: අනපේක්ෂිත ටෝකන නව රේඛාව අසල සින්ටැක්ස් දෝෂය" මෙහි ඇති යෝජනාව මත පදනම්ව (එහි නාමාවලිය සඳහා ආරම්භ වන්නේ - සහ <නොව <) බව මම තේරුම් ගතිමි cd -- <path>. කෙසේ වෙතත්, මට එකම දෝෂයක් තිබේ.

මම උත්සාහ කළ විට cd \<path>\- මෙය ක්‍රියාත්මක විය!

පසුබිම් තොරතුරු:

STDIN සහ STDOUT යළි හරවා යැවීම සඳහා "<" සහ ">" යන සංකේත භාවිතා කරනු ලැබේ, එබැවින් කවචය යළි-යොමුවීම් ලෙස අර්ථ නිරූපණය නොකිරීමට ඒවායින් ගැලවිය යුතුය.

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.