Извлеките все файлы после загрузки wget

Я использую wget для загрузки списка файлов с URL, вот моя команда:

wget --user='username' --password='mypassword' -i  url.txt

Это скачивает список .gz файлов

Что мне нужно Чтобы сделать это:

  1. Перед загрузкой удалите все файлы в каталоге
  2. После загрузки разархивируйте все файлы и удалите сжатые

Есть ли команда? или список команд, которые могут выполнить это, которые я могу вставить в cronjob? Мне нужно запускать это один раз в день.

Благодаря

1
задан 27 November 2013 в 23:10

2 ответа

Это скорее вопрос * nix, чем Ubuntu-центричный.

В общем, вы бы написали скрипт (с использованием языка bash или, возможно, Python), который обрабатывает задачу, которую вы описываете. Одна строка скрипта будет вашей командой, выше ... остальные будут обрабатывать проверку каталога, удаление, разархивирование и т. Д.

Тогда вы просто использовали бы cron (google up crontab), чтобы настроить запуск скрипта в определенное время.

0
ответ дан 27 November 2013 в 23:10

Давайте попробуем однострочно:

rm -rfi * && wget -q -O - --user='username' --password='mypassword' -i  url.txt | wget - && find . -name "*.zip" -exec "unzip && rm" {} \;

Не стесняйтесь редактировать / адаптировать: это может быть действительно неправильно, так как я не всегда чувствую себя комфортно с - псевдо-дескриптор и как каждое приложение обрабатывает его.

Некоторые подробности

Очистить текущий каталог.

rm -rfi *

Получить список, но вместо отправки содержимого в файл, перенаправить его на stdout (используя -q, -O и псевдодескриптор -).

wget -q -O - --user='username' --password='mypassword' -i  url.txt 

Загрузка файлов, имена которых отправляются с предыдущего вызова wget. Опять же, - делает относится к стандартному вводу, который также является выводом предыдущей команды.

wget -

Найдите все zip-файлы в каталоге и выполните unzip и rm для каждого из них.

find . -name "*.zip" -exec "unzip && rm" {} \;
0
ответ дан 27 November 2013 в 23:10

Другие вопросы по тегам:

Похожие вопросы: