Іноді деякі підручники спрямовані на пояснення дещо більш екзотичних і дивних команд, з іншого боку, є такі, що включають послідовний розподіл і не такі популярні, як 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
Хороший приклад тих речей, які під час навчання ви бачите марними, але коли ви переходите до теми, ви бачите, наскільки вони практичні.