Artur Pyszczuk's blog...

"'less' is more, but more 'more' than 'more' is, so 'more' is less 'less', so use more 'less' if you want less 'more'"
Slackbook, Chapter 10 Handling Files and Directories
/home/linux/commands/basename/

basename - Usunięcie przyrostku (rozszerzenia) z nazwy pliku

Za pomocą polecenia basename można zrobić bardzo ciekawą rzecz, a mianowicie z nazwy wskazywanego pliku usunąć przyrostek (rozszerzenie pliku). Większość z was może się zastanowić po co w ogóle robić coś takiego, natomiast w dalszej części pokazany został przykład dobitnie ilustrujący zastosowanie tego programu.

Ogólne użycie tego programu wygląda następująco.

$ basename NAZWA [SUFFIX]

Gdzie: NAZWA to nazwa pliku, a SUFFIX to przyrostek (rozszerzenie pliku), który może zostać pominięty. Jeśli jednak pominiemy wprowadzenie przyrostka, to z nazwą nie zostanie nic zrobione, zostanie wyświetlona dokładnie taka sama. Generalnie użycie basename nie zmienia nazwy pliku, z którego korzystał, jedynie edytowana nazwa zostanie wyświetlona na ekranie. Tak więc przykład użycia może być następujący.

Polecenie basename
Rys 1. Polecenie basename.

Jak widać w pierwszym przypadku nie podaliśmy suffix'a, dlatego też cała nazwa została wyświetlona. W drugim jednak przypadku podaliśmy jako suffix rozszerzenie tego pliku, jako wynik dostaliśmy samą nazwę plik1. Jakie mogą być korzyści z używania tego programu? A więc załóżmy pewną rzecz, mamy w katalogu X, n plików, każdy z rozszerzeniem .php. Chcemy, aby każdy z tych plików znalazł się w katalogu którego nazwą będzie nazwa tego pliku, tylko, że bez rozszerzenia (np. plik: basename.php, katalog: basename). Jeśli plików tych jest stosunkowo mało, to można zrobić to ręcznie, a co jeśli tych plików będzie np. 100? Tworzenie po kolei każdego katalogu oraz przenoszenie pliku do nowo utworzonego katalogu, zajęło by około 17 minut (zakładając, że utworzenie katalogu i przeniesienie pliku do tego katalogu zajęło by łącznie 10 sekund). Korzystając z basename zajmie nam to tyle co czas wpisania skryptu i uruchomienia go. Dajmy na to 45 sekund (w tym przykładzie są 23 pliki, lecz nie ma to najmniejszego znaczenia, ponieważ skrypt działa dla różnych ilości plików i nie trzeba nawet tej liczby podawać).

Polecenie basename
Rys 2. Polecenie basename - skrypt.

Czyż używanie konsoli nie jest piękne? Omówię działanie tego skryptu w kilku kolejnych liniach.

Jeśli w katalogu X było by 1000 plików, to dokładnie takie same czynności zostały by wykonane, tylko odpowiednią liczbę razy więcej. Ile zaoszczędzilibyśmy czasu? Zdecydowanie bardzo dużo.


Wiecej informacji na temat programu basename znajdziesz w podreczniku systemowym man.
Wpisujac w konsoli man basename

Wiecej informacji na temat programu basename znajdziesz również w programie info.
Wpisujac w konsoli info coreutils 'basename invocation'

Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |