Bash:
Маніпулювання файлами за допомогою однорядкових команд CLI
Як це зробити:
Ось кілька потужних однорядкових команд і те, що вони можуть зробити:
- Створення файлу та запис тексту в нього:
echo "Привіт, читачі Linux Journal!" > greetings.txt
Це створює (або перезаписує, якщо вже існує) файл greetings.txt
з фразою “Привіт, читачі Linux Journal!”.
- Додавання тексту до існуючого файлу:
echo "Ласкаво просимо до програмування Bash." >> greetings.txt
Це додає новий рядок “Ласкаво просимо до програмування Bash.” в кінець файлу greetings.txt
.
- Читання вмісту файлу:
cat greetings.txt
Вивід:
Привіт, читачі Linux Journal!
Ласкаво просимо до програмування Bash.
- Пошук певного рядка у файлі (за допомогою
grep
):
grep "Bash" greetings.txt
Знаходить і відображає рядки, що містять слово “Bash”; в цьому прикладі повертає “Ласкаво просимо до програмування Bash.”
- Вивід всіх файлів у поточному каталозі, відсортованих за датою модифікації:
ls -lt
Показує файли, відсортовані за часом модифікації, спочатку новіші.
- Масове перейменування файлів
.txt
в.md
(Markdown):
for file in *.txt; do mv "$file" "${file%.txt}.md"; done
Цей цикл проходить через кожен файл .txt
у поточному каталозі і перейменовує його в .md
.
Ці однорядкові команди CLI використовують потужність Bash для швидкого та ефективного маніпулювання файлами, вміння, яке буде незамінним для будь-якого програміста.
Поглиблений розгляд
Оболонка Bash, постійний атрибут на більшості систем, схожих на UNIX, розвинулася з Bourne Shell (sh), представленого в Unix версії 7 у 1979 році. Bash розширює можливості свого попередника завдяки покращеним можливостям скриптування, які зробили його популярним серед системних адміністраторів і програмістів.
Попри те, що Bash надзвичайно потужний для маніпулювання файлами, він має свої недоліки. Будучи заснованим на тексті, складні операції (як от ті, що включають бінарні дані) можуть бути громіздкими або неефективними порівняно з використанням мови програмування, розробленої з цими можливостями на увазі, такою як Python.
Альтернативи скриптуванню Bash для маніпулювання файлами можуть включати скриптування Python з використанням бібліотек os
та shutil
, які можуть запропонувати більш зрозумілий синтаксис і впоратися з більш складними сценаріями більш витончено. Однак, незмінна повсюдність Bash і його ефективність для більшості завдань з файлами гарантують його продовжувану популярність.
Більше того, розуміння внутрішньої роботи оболонки Bash з файлами (все є файлом у парадигмі Unix/Linux) та його вбудованих команд (як-от awk
, sed
, grep
тощо) може надати програмістам здатність писати більш ефективні та ефектні скрипти. Це глибоке розуміння можливостей оболонки разом з її історичним контекстом збагачує здатність програміста маніпулювати файлами та виконувати широкий спектр завдань безпосередньо з командного рядка.