Néha néhány oktatóanyag valamivel egzotikusabb és furcsább parancsok megmagyarázására irányul, másrészt vannak olyanok, amelyek soros terjesztéseket tartalmaznak, és nem annyira népszerűek, mint a cd, ls, cat stb., De ugyanolyan praktikusak. Ebben az oktatóanyagban megmutatom, hogy mit lehet tenni a parancsok közül kettővel: basename és mondd meg.
Lehet, hogy eleve abszurdnak tűnnek számodra, és hogy nincs hasznuk, de van elég praktikus alkalmazások bizonyos esetekben, például például olyan szkriptekben, ahol ki kell vonni egy útvonal egy részét, például a fájl vagy a könyvtár nevét, hogy egy másik parancs működjön ezen ...
Mire valók
Ezek a parancsok nagyon egyszerűek, és funkciói hang:
- alapnév: a fájl nevének kitermeléséhez egy elérési útból.
- Mondd el: a könyvtárnév kinyerésére egy elérési útból.
Felhasználási példák
Itt láthat néhányat példák hogyan kell használni őket:
- Például használni alapnév az / etc / passwd paranccsal, és hogy a fájl nevét adja vissza a kimenetében, ebben az esetben a passwd:
basename /etc/passwd
- Megadhatja azt is kiterjesztés úgy, hogy kiterjesztés nélkül megadja a fájl nevét. Tegyük fel például, hogy a /home/media/test.jpg kép nevét ki akarja vonni a jpg kiterjesztés nélkül (ez visszatér prueba):
basename -s .jpg /home/media/prueba.jpg
- Tudod is több útvonalat dolgozzon fel egyszerre külön, ehhez az -a opciót kell használnia:
basename -a /etc/passwd /var/log/boot.log
- Az ellenkezőjéhez, és megadva a könyvtár nevét, a fájl neve nélkül, akkor használnia kell Mondd el. Például, ha a /var/spool/mail/test.txt elérési útban szeretné használni, és a / var / spool / mail parancsot szeretné megadni, akkor használja:
dirname /var/spool/mail/prueba.txt
Ami a segédprogram egy szkriptben, itt van egy másik példa. Képzelje el, hogy van egy egyszerű szkriptje, és hogy benne van egy változó elérési út. De azt akarja, hogy a fájlt tartalmazó könyvtárat mutassa, függetlenül a fájltól, ebben az esetben valami ilyesmi lehet:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
Nyilvánvaló, hogy ebben a szkriptben az "útvonalnév" mindig ugyanaz a statikus lenne, amelyet az állandó állandó deklarált, de vannak olyan esetek, amikor nem, és ez az, ahol praktikussá válik. Például:
/*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
Jó példa azokra a dolgokra, amelyek tanulásakor használhatatlannak látszanak, de amikor eljut a témához, látja, hogy mennyire praktikusak.