Админам или околоадминам давно приелись комманды
$ wget http://site.com/files/file.tar.gz
$ tar vxf file.tar.gz
Всё здорово, привычно, но...
- Как часто нужен скачанный архив? Конечно зависит от специфики работы. Мне например не часто, т.е. добавляем удаление:
$ rm file.tar.gz
- А как быть в случае, когда по отдельности архив и распакованный архив умещаются на диске, но одновременно нет? Ну тупо места не хватает. Бывает, да :)
И есть решение! :)
Можно одной строчкой скачивать находу распаковывая в текущую папку. Линукс просто прелесть в этом плане:
$ curl http://site.com/files/file.tar.gz -0 | tar vxf -
всего то.
Что там произошло?
curl тупо отдаёт скачанный контент в stdout (надо обратить внимание, что в stderr отдаёт прогресс скачивания, пусть не смущает), после чего через пайп этот контент передаётся tar-у, который разжимает то, что пришло в stdin (в конце комманды стоит знак "-", что указывает что следует открыть файл stdin)
Чтобы смотреть на прогресс скачивания, а не распаковки (хотя это происходит синхронно), нужно убрать флаг многословности из тара. В таком случае сточки не будут бежать по экрану, будет аккуратненький прогрессбар, навроде:
$ curl http://site.com/files/file.tar.gz -0 | tar xf -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
1 103M 1 1734k 0 0 477k 0 0:03:42 0:00:03 0:03:39 480k