Μετάβαση στο περιεχόμενο

Basename

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Το basename ανήκει στα προγράμματα του UNIX. Όταν του δίνεται μια διαδρομή στο δίσκο, διαγράφει το αρχικό της τμήμα μέχρι την τελευταία κάθετο ('/') και επιστρέφει το αποτέλεσμα. Το basename περιγράφεται στη Μοναδική Προδιαγραφή UNIX (Single UNIX Specification) και χρησιμοποιείται κυρίως σε σενάρια κελύφους.

Σύμφωνα με το Single UNIX Specification, η προδιαγραφή του basename είναι η εξής:

basename συμβολοσειρά [επίθεμα]
συμβολοσειρά
Μια διαδρομή στο σύστημα αρχείων.
επίθεμα
Αν οριστεί, το basename θα το διαγράψει αν το βρει σαν επίθεμα.
$ basename /home/jsmith/base.wiki 

base.wiki

$ basename /home/jsmith/base.wiki .wiki

base

Επειδή το basename δέχεται μόνο μια παράμετρο, η χρήση του στον εσωτερικό βρόχο σεναρίων κελύφους μπορεί να έχει καταστροφικά αποτελέσματα στην ταχύτητα εκτέλεσής τους. Έστω:

while read file; do
  basename "$file"
done < κάποια είσοδος

Ο παραπάνω κώδικας δημιουργεί μια ξεχωριστή κλήση διεργασίας για κάθε γραμμή της εισόδου. Για αυτόν το λόγο συνήθως γίνεται χρήση της υποκατάστασης κελύφους:

echo "${file##*/}";