שאלה כיצד cd לתוך ספרייה עם השם הזה "-2" (מתחיל עם מקף)?


יש לי ספרייה בשם:

-2

אני רוצה להיכנס לתוכו אבל התקליטור מתלונן:

bash: cd: -2: invalid option

ללא הצלחה, ניסיתי:

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

כל פתרון?

עריכה: אין דפדפנים קובץ כמו mc, וכו 'זמין בשרת.


149
2018-01-03 20:29




שאלה קשורה על superuser: superuser.com/questions/361573/... - yms


תשובות:


לפחות שתי דרכים:

  1. להשתמש ב -- ויכוח.

    cd -- -2
    

    זה משתמש בוועידה המשותפת לכלים של גנו אשר אינה מטפלת בשום דבר שמופיע לאחר מכן -- כאפשרות שורת פקודה.

    כ פרשן ציין, כי האמנה היא גם המוגדר בתקן POSIXYou

    התנהגות ברירת מחדל: כאשר סעיף זה מופיע בתור "ללא". המשמעות היא שהיישום אינו תומך באפשרויות כלשהן. כלי עזר סטנדרטיים שאינם מקבלים אופציות, אך הם מקבלים אופרנדים, יכירו "--" כטיעון ראשון שיש להשליך.

    דרישת ההכרה "--" היא כי יישומים קונפורמינג צריך דרך להגן על האופראנים שלהם מכל אפשרויות שרירותי כי היישום עשוי לספק כתוסף. לדוגמה, אם כלי השירות הסטנדרטי foo מופיע כנקוט ללא אפשרויות, והיישום הדרוש כדי לתת לו נתיב עם מקף מוביל, הוא יכול לעשות זאת בבטחה כדלקמן:

    foo -- -myfile
    

    ולהימנע מבעיות כלשהן -M משמשת כתוסף.

    ממש כמוYou

    הנחיה 10:
      הוויכוח -- יש לקבל כמסמן המציין את סוף האופציות. כל הארגומנטים הבאים צריכים להיות מטופלים כאופרנדים, גם אם הם מתחילים עם '-' אופי. ה -- אין להשתמש בטענה כאופציה או כאופרנד.

  2. ציין את הנתיב במפורש:

    cd ./-2
    

    זה מציין את הנתיב במפורש מתן שמות לספרייה הנוכחית (.) כנקודת ההתחלה.

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

    אלו הן וריאציות על האמור לעיל. כל מספר של וריאציות כאלה עשוי להיות אפשרי; אני אשאיר את זה בתור תרגיל לקורא כדי לגלות את כולם.


250
2018-01-03 20:32



זה לא רק גנו, זה חלק תקן POSIX. ראה 1.11 תיאור השירות ברירות מחדל ו 12.2 הנחיות תחביר השירות (הנחיה מס '10). מ ה cd עמוד "ה cd השירות יהיה תואם ... סעיף 12.2 ". - Dietrich Epp
עכשיו אני רק סקרן על איך cd לספרייה בשם -! - sergiol
@sergiol באותו אופן. - Michael Hampton♦
@ ArtB: No. ציטוט רק משפיע על פיצול השדה. לכן "hello world" היא טענה אחת hello world הוא שני, ו "-2" הוא זהה -2. - Dietrich Epp
@sergiol: או cd -- -- או cd ./-- אמור לעבוד. - Keith Thompson


זה אמור לפעול:

cd -- -2 

- אין אפשרות נוספת


48
2018-01-03 20:33





פעולה זו תפעל אם '-2' נמצא בספרייה הנוכחית.

    cd ./-2

אתה יכול השלמה אוטומטית על ידי הקלדת - ולחיצה על הכרטיסייה.


25
2018-01-04 06:19





cd /home/...../-2 גם עובד. תן את הנתיב המלא לגישה.


10
2018-01-04 02:46





רק כדי להשלים, אם אתה רוצה להסיר / למחוק ספרייה זו אתה יכול להשתמש בפקודה הבאה:

rm -r -- -2

6
2018-01-04 14:14





אני יודע שאלה זו כבר ענה. אם למישהו יש מצב כמו שלי, זה בשבילם:

אני רץ App ג 'אווה וזה היה מחפש במדריך מתחיל עם <path>, הייתי אמור להחליף את זה עם הנתיב הנכון לפני הפעלת היישום. עם זאת, שכחתי לעשות את זה. האפליקציה יצרה ספריה שנקראה <path>.

ניסיתי ל cd <path> - נתן לי שגיאה "-bash: שגיאת תחביר ליד Newline אסימון חדש" בהתבסס על ההצעה כאן (אני מבין את הספרייה שלה מתחיל עם - ולא) <ניסיתי cd -- <path>. עם זאת, יש לי את אותה שגיאה.

כשניסיתי cd \<path>\ זה עבד!

מידע רקע:

הסמלים "<" ו- ">" משמשים להפניה מחדש של STDIN ו- STDOUT, ולכן הם צריכים להימלט כדי להפוך את הקליפה לא להפריד ביניהם כהפניות מחדש.


-1
2017-07-05 14:00