Utilizzo del comando basename negli script Bash

Popular:
MIGLIORA LA TUA CONFIGURAZIONE DEL SERVER! APPLICA AVA E LANCIA CON UN 15% DI SCONTO
USA IL CODICE PROMO:

Perché usare basename negli script?

Ecco alcuni esempi di esigenze reali di scripting:

Casi d’uso pratici negli script Bash

📁 1. Eseguire il looping dei file con la registrazione

Questo script esegue un loop sui file .log, estrae il nome senza l’estensione e registra ogni azione. basename semplifica la gestione dei nomi dei file senza complesse operazioni di taglio delle stringhe.

📂 2. Uso di basename per i percorsi dinamici dei file

Supponiamo di ricevere percorsi completi dall’input dell’utente o da un altro processo:

L’uso di basename nello script garantisce la flessibilità quando si lavora con percorsi di file dinamici, specialmente in ambienti come un VPS Linux dove i log, i file di configurazione e i backup possono risiedere in directory diverse. Questo rende lo script robusto, indipendentemente dal fatto che gli venga passato un percorso completo come /var/log/syslog o un file relativo come ./config.txt.

🧪 3. Combinazione di basename e dirname

Usateli insieme per isolare gli elementi del percorso:

Rimozione delle estensioni dei file con basename

Se si desidera rimuovere le estensioni conosciute:

⚠️ Nota: questo funziona solo se il suffisso corrisponde esattamente. Quindi .txt funziona, ma .TXT o .tar.gz no, a meno che non sia specificato esplicitamente.

Per estensioni multiple, combinare basename con altri strumenti:

Oppure:

basename vs Espansione di parametri

Sebbene basename sia intuitivo, genera un sottoprocesso. Per gli script critici dal punto di vista delle prestazioni o per i cicli di grandi dimensioni, preferire le alternative Bash pure:

Equivalente nativo di Bash:

Rimuovere l’estensione con Bash nativo:

✅ Più veloce che chiamare il nome di base esterno .

Esempio: Rinominare i file in blocco

Supponiamo di voler anteporre a tutti i file .jpg la data di oggi:

Questo utilizza basename per preservare i nomi originali, aggiungendo una stringa personalizzata.

Usa il nome di base “$0” per le introduzioni agli script