Столкнулся с задачей на практике — в архиве 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 и размещена в рубрике Программирование.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Ноябрь 23, 2015 г.
Столкнулся недавно с такой проблемой - не смог файловым менеджером даже просто открыть папку с временными файлами на своём веб-сервере под UNIX. Размер, папки, т.е. сам список файлов оказался объемом в 85 мегабайт. Сколько там файлов, я даже не представляю. ...
Читать
Ноябрь 28, 2018 г.
По умолчанию GREP выводит всю строку, где был обнаружен указанный вами шаблон поиска. Для форматированных текстовых файлов это подходит. Но если в поиск попадает минифицированный текстовый или binary файл, то в консоль вываливается неприлично много текста. ...
Читать
Октябрь 6, 2021 г.
Рассмотрим порядок установки/обновления PHP на RHL (шпаргалка).
Описание php пакетов находится в remi репозитории. Возможно, его потребуется установить/обновить. ...
Читать
Октябрь 22, 2019 г.
Веб сервера поддерживают обычно соединение в течении какого то времени. Но что делать, если нужно скачать файл, который просто не успевает закачаться за отведенное время?
В Unix файл можно скачать по ссылке командой wget, вот так:
[crayon-6a4963fc27ef5912300460/] ...
Читать