Úplná cesta k souboru v Linuxu odkazuje na úplnou adresu včetně adresářů a podadresářů, pomocí kterých lze soubor najít. Každý operační systém má různé varianty úplné cesty k souboru.
V Linuxu to vypadá asi takto:
/home/user/Documents/test.txt
Toto je úplná cesta k souboru test.txt .
Při ručním zpracování cesty k souboru je snadné získat název souboru, ale pokud používáte skript pro nějaký druh automatizace, možná budete muset v určitých scénářích název souboru extrahovat.
Podívejme se, jak můžeme extrahovat název souboru z úplné cesty v Linuxu.
Použití příkazu Basename
Celý účel příkazu basename je získat název souboru z cesty k souboru. Ačkoli není příliš obtížné získat název souboru z úplné cesty, basename to automaticky udělá za vás a vy se nemusíte trápit s analýzou cesty k souboru atd.
Syntaxe je:
$ basename full_file_path $ basename /var/log/syslog [example command]
Použijte -a
argument pro předání více cest.
$ basename -a /var/log/syslog /var/log/dpkg.log
Použití substituce parametrů Bash
Náhrady parametrů Bash představují způsob, jak měnit proměnnou za běhu. Proto, abychom mohli použít tuto metodu, musíme uložit cestu k souboru do proměnné.
$ fullpath="/var/log/syslog"
Nyní použijeme substituci parametru a uložíme hodnotu do jiné proměnné.
$ filename=${fullpath##*/} $ echo $filename
V podstatě to dělá to, že:skartuje část před posledním ‘/’
v „úplné cestě “ a zachová zbytek řetězce, což není nic jiného než název souboru.
Závěr
V tomto článku jsme se dozvěděli o dvou způsobech, jak získat název souboru z úplné cesty k souboru v Linuxu. Pokud se chcete dozvědět více o příkazu basename a parametr substituce v Bash, ujistěte se, že procházíte jejich příslušné manuálové stránky pomocí:
$ man basename $ man bash
Děkujeme za přečtení a níže nám sdělte své myšlenky a otázky!