A volte alcuni tutorial hanno lo scopo di spiegare comandi un po 'più esotici e strani, d'altra parte, ce ne sono alcuni che includono distribuzioni seriali e non sono così popolari come cd, ls, cat, ecc., Ma sono altrettanto pratici. In questo tutorial ti mostrerò cosa si può fare con due di questi comandi: basename e dimmi.
Forse a priori ti sembrano assurde e che non servono, ma sì applicazioni piuttosto pratiche in alcuni casi, come, ad esempio, negli script in cui è necessario estrarre una parte di un percorso, come il nome del file o della directory in modo che un altro comando operi su questo ...
A cosa servono
Questi comandi sono molto semplici e le sue funzioni sono:
- nome di base: utilizzato per estrarre il nome del file da un percorso.
- cognome: utilizzato per estrarre il nome della directory da un percorso.
Esempi di utilizzo
Qui puoi vederne alcuni esempi come usarli:
- Ad esempio, da usare nome di base con / etc / passwd e che restituisce il nome del file nel suo output, in questo caso passwd:
basename /etc/passwd
- Puoi anche specificare un'estensione in modo che ti dia il nome del file senza l'estensione. Ad esempio, supponiamo di voler estrarre il nome di un'immagine /home/media/test.jpg senza l'estensione jpg (restituirebbe prueba):
basename -s .jpg /home/media/prueba.jpg
- Puoi anche elaborare più percorsi contemporaneamente separatamente, per questo devi usare l'opzione -a:
basename -a /etc/passwd /var/log/boot.log
- Per fare il contrario e darti il nome della directory, senza il nome del file, devi usare cognome. Ad esempio, se vuoi usarlo nel percorso /var/spool/mail/test.txt e fare in modo che restituisca / var / spool / mail, usa:
dirname /var/spool/mail/prueba.txt
Per quanto riguarda a utilità in uno script, ecco un altro esempio. Immagina di avere uno script semplice e che in esso ci sia un percorso variabile. Ma vuoi che mostri la directory che contiene un file, indipendentemente dal file, in quel caso potresti avere qualcosa come:
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
Ovviamente, in questo script il "percorso" sarebbe sempre lo stesso statico dichiarato dalla costante all'inizio, ma ci possono essere casi in cui non lo è, ed è qui che diventa pratico. Ad esempio:
/*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
Un buon esempio di quelle cose che quando impari vedi inutili, ma quando arrivi all'argomento vedi quanto sono pratiche.