Linux QuickTip: загрузка и распаковка за один шаг

В большинстве случаев, когда я что-то скачиваю, это какой-то файловый архив — обычно тарбол или zip-файл. Это может быть некоторый исходный код для приложения, которое не включено в дерево Portage Gentoo, некоторая документация для внутреннего корпоративного приложения или даже что-то более приземленное, чем новая установка WordPress.

Традиционный способ загрузки и распаковки чего-либо в терминале будет выглядеть примерно так:

wget http://wordpress.org/latest.tar.gz

tar xvzf latest.tar.gz

rm latest.tar.gz

Или, возможно, более компактная форма:

wget http://wordpress.org/latest.tar.gz && tar xvzf latest.tar.gz && rm latest.tar.gz

В любом случае это немного неуклюже. Это очень простая операция, такая мощная оболочка, как bash, должна позволять выполнять такую ​​задачу более «гладко».

Что ж, благодаря полезной маленькой команде «curl», мы можем на самом деле справиться с беспорядком, описанным выше, всего одним оператором:

завиток http://wordpress.org/latest.tar.gz | tar xvz

Нет временных файлов, от которых можно избавиться, нет возни с амперсандами. Одним словом, очень компактная, эффективная команда. Фактически, с теоретической точки зрения, метод curl может быть быстрее, чем сцепленный беспорядок wget/tar/rm, так как конвейер stdout будет использовать RAM в качестве буфера, если это возможно, тогда как wget и tar (с ключом -f) должны читать/записывать прямо с диска.

Кстати, tar с параметром -v (как мы его используем во всех приведенных выше примерах) печатает каждое имя файла в стандартный вывод, поскольку каждый не подвергается обработке. Это может помешать хорошему выводу curl, показывающему состояние загрузки. Мы можем отключить tar, вызвав его без -v таким образом:

завиток http://wordpress.org/latest.tar.gz | tar xz

И это все, что нужно сделать!

Оцените статью
TutoryBird.Ru
Добавить комментарий