Overzicht
Het 'basename' commando wordt gebruikt om het directory-gedeelte van een bestandspad te verwijderen en alleen de bestandsnaam (of de laatste directory-naam) te extraheren. Dit is erg handig bij het manipuleren van bestandspaden in shell-scripts, vooral wanneer alleen de naam van het bestand nodig is.
Belangrijkste functies
- Extraheert de bestandsnaam uit een bestandspad
- Verwijdert optioneel een opgegeven suffix van de bestandsnaam
- Biedt functionaliteit voor batchverwerking van meerdere paden
Belangrijkste opties
Hier zijn de belangrijkste opties die beschikbaar zijn in het standaard 'basename' commando.
Standaard gedrag en filtering
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`basename-u` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Hier zijn enkele praktische voorbeelden van het standaard 'basename' commando.
Standaard bestandsnaam extractie
basename /home/user/documents/report.pdf
Extraheert alleen de bestandsnaam uit een gegeven pad.
Suffix verwijderen
basename /var/log/syslog.log .log
Verwijdert een specifiek suffix van de bestandsnaam.
Meerdere bestandsnamen extraheren
basename -a /etc/hosts /usr/bin/ls /tmp/test.txt
Extraheert bestandsnamen uit meerdere paden tegelijk.
Gebruik van NUL-terminatie met xargs
find . -maxdepth 1 -type f -print0 | xargs -0 basename -z
Verwerkt veilig NUL-getermineerde uitvoer met `xargs -0`.
Tips & Aandachtspunten
Uitleg over de basename-u optie
De '-u' in de commando naam is geen geldige optie voor het standaard 'basename' commando. De 'basename' commando in GNU Coreutils heeft geen '-u' optie, en het gebruik ervan kan een foutmelding zoals 'basename: invalid option -- 'u'' opleveren. Als '-u' in een specifiek script of omgeving wordt gebruikt, is het waarschijnlijk geen 'basename' commando, maar een ander door de gebruiker gedefinieerd script of alias.
Combinatie met dirname
'basename' extraheert alleen de bestandsnaam, terwijl 'dirname' alleen het directory-pad extraheert. Door deze twee commando's te combineren, kunt u een bestandspad perfect scheiden in een directory en een bestandsnaam, wat erg nuttig is bij het schrijven van shell-scripts.
- Voorbeeld: path="/home/user/documents/report.pdf" echo "Directory: $(dirname "$path")" echo "Bestandsnaam: $(basename "$path")"