לפעמים יש מדריכים שמטרתם להסביר פקודות קצת יותר אקזוטיות ומוזרות, מצד שני, יש כאלה שכוללות הפצות סדרתיות ואינן פופולריות כמו cd, ls, cat וכו ', אך הן מעשיות לא פחות. במדריך זה אני אראה לך מה ניתן לעשות בשתי מאותן פקודות: שם בסיס ותגיד לי.
אולי אפריורי הם נראים לך אבסורדים ושאין להם שום תועלת, אבל כן יישומים די מעשיים במקרים מסוימים, כגון, למשל, בסקריפטים בהם עליך לחלץ חלק כלשהו מנתיב, כגון שם הקובץ או הספריה כך שפקודה אחרת תפעל על כך ...
לשם מה הם נועדו
פקודות אלה הן בסיסיות מאוד, ו תפקידיה צליל:
- שם בסיס: משמש לחילוץ שם הקובץ מנתיב.
- שם הדירוג: משמש לחילוץ שם הספריה מנתיב.
דוגמאות לשימוש
כאן תוכלו לראות כמה דוגמאות כיצד להשתמש בהם:
- לדוגמא, להשתמש שם בסיס עם / etc / passwd, ושהוא מחזיר את שם הקובץ בפלט שלו, במקרה זה passwd:
basename /etc/passwd
- אתה יכול גם לציין תוספת כך שייתן לך את שם הקובץ ללא הסיומת. לדוגמה, נניח שרציתם לחלץ את שם התמונה /home/media/test.jpg ללא סיומת jpg (היא תחזור prueba):
basename -s .jpg /home/media/prueba.jpg
- אתה יכול אפילו לעבד מספר מסלולים בו זמנית בנפרד, לשם כך עליך להשתמש באפשרות -a:
basename -a /etc/passwd /var/log/boot.log
- כדי לעשות את ההפך ולתת לך את שם הספרייה, ללא שם הקובץ, עליך להשתמש שם הדירוג. לדוגמא, אם ברצונך להשתמש בו בנתיב /var/spool/mail/test.txt ויש להחזיר אותו / var / spool / mail, ואז השתמש ב:
dirname /var/spool/mail/prueba.txt
לגבי א שירות בתסריט, הנה לך דוגמה נוספת. דמיין שיש לך סקריפט פשוט, ושבתוכו יש מסלול משתנה. אבל אתה רוצה שהיא תציג את הספרייה שמכילה קובץ, ללא קשר לקובץ, במקרה כזה יכול להיות שיש לך משהו כמו:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
ברור שבסקריפט זה "שם הנתיב" תמיד יהיה אותו סטטי שהוכרז על ידי הקבוע בהתחלה, אך יתכן שיש מקרים שהוא לא, וזה המקום בו זה הופך להיות מעשי. לדוגמה:
/*script para convertir una imagen gif en png*/ #!/bin/sh for file in *.gif;do #Salir si no hay ficheros if [! -f $file];then exit fi b='basename $file .gif' echo NOW $b.gif is $b.png giftopnm $b.gif | pnmtopng >$b.png done
דוגמא טובה לאותם דברים שכשאתה לומד אתה רואה חסר תועלת, אבל כשאתה מגיע לנושא אתה רואה עד כמה הם מעשיים.