Startpagina > Bestands- en mapbeheer > basename-w

basename-w: Bestand van een pad extraheren (virtueel)

basename-w is een virtueel commando dat de pure bestandsnaam of de laatste directorynaam uit een gegeven bestandspad extraheert, waarbij het directorygedeelte wordt weggelaten. Het lijkt op het standaard `basename`-commando, maar kan verwerkingen met betrekking tot een specifieke breedte (width) bevatten. Dit commando is niet standaard inbegrepen in standaard Linux-systemen.

Overzicht

basename-w wordt gebruikt om het bestandsnaamgedeelte uit een bestandspad te extraheren door het directorypad te verwijderen. Dit is handig wanneer alleen de bestandsnaam nodig is in scripts. Het gedraagt zich vergelijkbaar met het standaard `basename`-commando, maar de `-w` optie kan verband houden met specifieke breedteverwerking. (Dit commando is virtueel en niet inbegrepen in standaard Linux-distributies.)

Belangrijkste kenmerken

  • Extraheert bestandsnaam uit pad
  • Handig voor het verwerken van bestandsnamen in scripts
  • Functie voor het aanpassen van de uitvoer aan een specifieke breedte (virtueel)

Belangrijkste opties

basename-w biedt de basisfunctie om bestandsnamen uit paden te extraheren, met de `-s` optie om achtervoegsels te verwijderen, en de `-w` optie kan worden gebruikt om de uitvoer aan te passen aan een specifieke breedte.

Gedragscontrole

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`basename-w` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Diverse gebruiksvoorbeelden van het basename-w commando.

Standaard bestandsnaam extraheren

basename-w /home/user/documents/report.txt

Extraheert alleen de bestandsnaam uit het opgegeven pad.

Achtervoegsel verwijderen

basename-w /home/user/image.jpg -s .jpg

Verwijdert een specifiek achtervoegsel uit de bestandsnaam.

Breedte beperking (virtueel)

basename-w /path/to/very/long/filename.txt -w 10

Beperkt de lengte van de uitvoerbestandsnaam tot 10 tekens. (Virtuele werking)

Installatie

basename-w is een virtueel commando dat niet standaard is inbegrepen in standaard Linux-distributies. Als u een vergelijkbare functionaliteit moet implementeren, wordt aanbevolen om zelf een script te schrijven of het `basename`-commando te gebruiken. Hieronder staat een voorbeeld van een virtueel `basename-w` script.

Script maken en opslaan

Sla de volgende inhoud op als een bestand met de naam `basename-w`.

#!/bin/bash\n\n# Voorbeeld van basename-w script\n\npath="$1"\nsuffix=""\nwidth=""\n\n# Opties parsen\nwhile getopts "s:w:" opt; do\n  case $opt in\n    s) suffix="$OPTARG" ;;\n    w) width="$OPTARG" ;;\n    \?) echo "Ongeldige optie -$OPTARG" >&2 ; exit 1 ;;\n  esac\ndone\nshift $((OPTIND-1))\n\n# Fout als pad niet is opgegeven\nif [ -z "$path" ]; then\n  echo "Gebruik: basename-w [-s ACHTERVOEGSEL] [-w BREEDte] PAD" >&2\n  exit 1\nfi\n\n# Bestandsnaam extraheren met basename\nfilename=$(basename "$path" "$suffix")\n\n# Breedtebeperking toepassen (virtuele functie)\nif [ -n "$width" ]; then\n  echo "${filename:0:$width}"\nelse\n  echo "$filename"\nfi

Uitvoeringsrechten toekennen en toevoegen aan PATH

Geef het script uitvoeringsrechten en verplaats het naar een map die is opgenomen in de systeem-PATH (bijv. `/usr/local/bin`) zodat het overal kan worden uitgevoerd.

chmod +x basename-w\nsudo mv basename-w /usr/local/bin/

Tips & Aandachtspunten

Aangezien basename-w een virtueel commando is, moet u bij daadwerkelijk gebruik het standaard `basename`-commando gebruiken of de benodigde functionaliteit zelf implementeren.

Gebruikstips

  • Gebruik van standaard `basename`: In de meeste gevallen is het `basename`-commando voldoende. Raadpleeg `man basename` voor het gebruik ervan.
  • Zelf script implementeren: Als u aangepaste functies nodig heeft, zoals breedtebeperking, is het flexibeler en beter om deze zelf te implementeren met een shellscript of een andere programmeertaal.
  • Padscheidingsteken: In Linux/Unix-systemen wordt `/` gebruikt als padscheidingsteken. Commando's uit de `basename`-familie werken op basis hiervan.

Hétzelfde categoriecommando