Używanie polecenia basename w skryptach Bash

Popular:
POWIĘKSZ SWOJĄ KONFIGURACJĘ SERWERA! ZASTOSUJ AVA I URUCHOM Z 15% ZNIŻKI
UŻYJ PROMOCJI:

Dlaczego używać basename w skryptach?

Oto kilka przykładów rzeczywistych potrzeb skryptowych:

Praktyczne przypadki użycia w skryptach Bash

📁 1. Iterowanie po plikach z rejestrowaniem

Ten skrypt iteruje po plikach .log, wyodrębnia nazwę bez rozszerzenia i rejestruje każdą akcję. basename upraszcza obsługę nazw plików bez skomplikowanego krojenia ciągów.

📂 2. Używanie basename dla dynamicznych ścieżek plików

Załóżmy, że otrzymujesz pełne ścieżki z wejścia użytkownika lub innego procesu:

Używanie basename w swoim skrypcie zapewnia elastyczność podczas pracy z dynamicznymi ścieżkami plików, szczególnie w środowiskach takich jak Linux VPS, gdzie dzienniki, pliki konfiguracyjne i kopie zapasowe mogą znajdować się w różnych katalogach. To sprawia, że twój skrypt jest odporny niezależnie od tego, czy przekazano mu pełną ścieżkę, taką jak /var/log/syslog, czy względny plik, taki jak ./config.txt.

🧪 3. Łączenie basename z dirname

Użyj ich razem, aby izolować elementy ścieżki:

Usuwanie rozszerzeń plików za pomocą basename

Jeśli chcesz usunąć znane rozszerzenia:

⚠️ Uwaga: To działa tylko wtedy, gdy sufiks dokładnie pasuje. Więc .txt działa, ale .TXT lub .tar.gz nie zadziała, chyba że zostanie to wyraźnie określone.

Dla wielu rozszerzeń połącz basename z innymi narzędziami:

Lub:

basename vs Rozszerzenie parametrów

Chociaż basename jest intuicyjne, uruchamia podproces. Dla skryptów krytycznych dla wydajności lub dużych pętli, preferuj czyste Bash alternatywy:

Rodzajowy odpowiednik Bash:

Usuń rozszerzenie za pomocą natywnego Bash:

✅ Szybsze niż wywoływanie zewnętrznego basename.

Przykład: Zmiana nazw plików masowo

Załóżmy, że chcesz dodać prefiks do wszystkich plików .jpg z dzisiejszą datą:

To używa basename, aby zachować oryginalne nazwy, dodając niestandardowy ciąg na początku.

Użyj basename „$0” do wprowadzeń skryptów