Столкнулся с задачей на практике — в архиве tar.gz лежит еще один архив, в котором еще один и так далее… Как с кощеевым яйцом, только цепочка в матрешке куда более длинная.
Написал небольшой скрипт для bash, по распаковке такого сюрприза.
Логика работы такова — внешний цикл — выполняется до тех пор, пока в контрольной папке есть файлы с раcширением *.tar.gz. А внутренний цикл перебирает все такие файлы, распаковывает их и удаляет только что распакованный архив.
Контрольная папка у меня — ./unpack, туда помещаем «матрешку» и запускаем наш скрипт.
|
|
while ls ./unpack/*.tar.gz >/dev/null 2>&1; do ls ./unpack/*.tar.gz | while read f; do echo "process $f" tar -xzf "$f" -C "./unpack" rm "$f" done done |
Скрипт будет сообщать имена архивов, которые он обрабатывает в текущий момент.
UNIX
Данная запись опубликована в 18.09.2025 01:37 и размещена в рубрике Программирование.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 17, 2022 г.
Команда su позволяет выполнить любую операцию от имени существующего пользователя.
К примеру от имени пользователя nginx:
[crayon-691d30820d717918112330/]
Должно вывести nginx, но скорее всего ничего не получится и вы увидите сообщение
...
Читать
Январь 24, 2017 г.
Не простая операция, если вы не имели опыта настройки / работы с postgresql до сих пор. Расскажу поэтапно как выгрузить дамп базы, и как затем этот дамп ...
Читать
Февраль 13, 2018 г.
Ещё одна шпаргалка по администрированию UNIX серверов. На этот раз рассмотрим несколько полезных команд для создания бекапа базы данных из консоли.
Нам понадобится команда mysqldump, которая позволяет создавать sql скрипт базы или её части.
Создание ...
Читать
Август 22, 2011 г.
Сайты иногда переезжают с одного хостинга на другой. И когда это случается, приходится выполнить как минимум две операции - копирование файлов и копирование базы данных на промежуточный хост.
Этот промежуточный хост, обычно, рабочая станция под управлением ...
Читать