Використання базового імені Command у Bash-скриптах

Popular:
ПІДВИЩІТЬ НАЛАШТУВАННЯ СЕРВЕРА! ЗАСТОСУЙТЕ AVA І ЗАПУСК З ЗНИЖКА 15%
АКТИВУЙ ПРОМО:

Використання базового імені Command у Bash-скриптах

У скриптах Bash однією з найпоширеніших задач є маніпулювання шляхами до файлів – особливо, коли вам потрібно витягти лише ім’я файлу з повного шляху. Саме для цього і потрібна команда basename. Незважаючи на те, що basename здається простою, вона має потужні можливості при правильному використанні в більш складних скриптах, інструментах автоматизації, хостингових сервісах і середовищах CI/CD.

Що таке basename?

Команда basename вилучає шлях до каталогу і, за бажанням, вилучає розширення файлу, залишаючи лише основну назву (останній компонент шляху до файлу).

🔧 Базовий синтаксис:

✅ Прості приклади:

Навіщо використовувати базове ім’я в скриптах?

Ось лише кілька прикладів реальних потреб скриптів:

Практичні приклади використання Bash-скриптів

📁 1. Циклічний перегляд файлів з логуванням

Цей скрипт циклічно переглядає .log-файли, витягує ім’я без розширення і записує кожну дію в журнал. basename спрощує обробку імен файлів без складного розбиття рядка на частини.

📂 2. Використання basename для динамічних шляхів до файлів

Припустимо, ви отримуєте повні шляхи від користувача або іншого процесу:

Використання базового імені в скрипті забезпечує гнучкість при роботі з динамічними шляхами до файлів, особливо в таких середовищах, як Linux VPS, де журнали, конфігураційні файли і резервні копії можуть знаходитися в різних директоріях. Це робить ваш скрипт надійним незалежно від того, чи передається повний шлях, наприклад, /var/log/syslog, чи відносний файл, наприклад, ./config.txt.

🧪 3. Поєднання базового імені з іменем каталогу

Використовуйте їх разом, щоб ізолювати елементи шляху:

Видалення розширень файлів з базовим ім’ям

Якщо ви хочете видалити відомі розширення:

⚠️ Примітка: Це працює, тільки якщо суфікс точно збігається. Отже, .txt працює, але .TXT або .tar.gz не працюватимуть, якщо не вказано явно.

Для декількох розширень комбінуйте базову назву з іншими інструментами:

Або:

базове ім’я vs Розширення параметрів

Хоча базове ім’я інтуїтивно зрозуміле, воно породжує підпроцес. Для критично важливих до продуктивності скриптів або великих циклів віддавайте перевагу чистим альтернативам Bash:

Нативний еквівалент Bash:

Видалити розширення за допомогою рідного Bash:

✅ Швидше, ніж викликати зовнішнє ім’я бази.

Приклад: Масове перейменування файлів

Припустимо, ви хочете додати до префікса всіх файлів .jpg сьогоднішню дату:

Тут використовується базове ім’я для збереження оригінальних назв під час додавання користувацького рядка.

Використовувати базове ім’я “$0” для вступів до сценаріїв