Hey, ruX is here.

tar: Скачать, разпаковывая

Админам или околоадминам давно приелись комманды

$ wget http://site.com/files/file.tar.gz
$ tar vxf 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

Exit mobile version