
Раньше я скачивал и распаковывал файлы с помощью браузера и файлового менеджера, пока не понял, что могу делать все это из терминала, не нажимая и не переключая окна. Теперь я постоянно использую всего шесть команд. Вот что это такое и почему их стоит запомнить.
Начните с Wget: мой выбор по умолчанию для быстрой загрузки
Первая команда, которую я использовал для загрузки чего-либо из командной строки, была Wget. Она встроена в большинство дистрибутивов Linux и очень проста в использовании.
Хотите скачать файл с URL? Просто запустите:
wget https://example.com/file.zip

Вот и все. Файл сохраняется в вашем текущем рабочем каталоге. Если вы хотите переименовать файл по мере его загрузки, вы можете использовать опцию -O:
wget -O новое_имя.zip https://example.com/file.zip
Это полезно, когда URL-адрес имеет длинное или странное имя файла, и вы хотите сохранить порядок.
Другой параметр, который я часто использую, это -q, который говорит wget работать тихо. Вывода не будет, если только не будет ошибки:
wget -q https://example.com/file.zip
Это удобно в скриптах или когда я не хочу загромождать терминал выводом информации о ходе выполнения.
Когда wget терпит неудачу, я использую cURL
В большинстве случаев Wget справляется со своей задачей. Но иногда он не работает, особенно если файл находится за редиректом или сервер ожидает другие заголовки. Вот тогда я переключаюсь на cURL.
Вот основной синтаксис, который я использую:
curl -L https://example.com/file.zip -o file.zip

Флаг -L сообщает curl, что нужно следовать перенаправлениям. Без него команда может не сработать, если URL указывает на перенаправление, а не на сам файл. Флаг -o просто сообщает curl, как назвать файл после его загрузки.
Честно говоря, cURL имеет крутую кривую обучения, если вы начнете копаться во всех его опциях. Однако эта команда охватывает большинство случаев использования для простых загрузок файлов.

Далее распакуйте, чтобы извлечь файлы .zip.
После загрузки мне почти всегда нужно извлечь содержимое. Для файлов ZIP команда unzip проста.
Чтобы распаковать файл в текущем каталоге, просто введите:
распаковать файл .zip

Это извлечет все в текущую папку. Если вы хотите сохранить все более организованным, вы можете извлечь в определенный каталог:
распаковать файл.zip -d мояпапка
Если папка не существует, unzip создаст ее автоматически.
Иногда я сталкиваюсь с проблемами, когда у меня уже есть некоторые файлы, и я не хочу их перезаписывать. В этом случае я использую:
распаковать -n файл.zip
Параметр -n означает «никогда не перезаписывать существующие файлы». С другой стороны, если я делаю что-то быстро и просто хочу перезаписать без запроса, я использую:
распаковать -o файл.zip
Это избавляет меня от необходимости отвечать «да» или «нет» дюжину раз.

Для архивов tar я запомнил эти вариации tar
Файлы ZIP — не единственный формат, который вы увидите. В Linux .tar.gz и .tar.bz2 также распространены, особенно когда вы имеете дело с программными пакетами, исходным кодом или резервными архивами Linux.
Вот что я использую для их извлечения:
tar -xzf архив.tar.gz

А для файлов, сжатых bzip2:
tar -xjf архив.tar.bz2
Если я хочу распаковать содержимое в определенный каталог, я добавляю флаг -C:
tar -xzf архив.tar.gz -C моя_папка
Что мне нравится в tar, так это то, что он позволяет предварительно просмотреть содержимое архива перед извлечением чего-либо:
tar -tf архив.tar.gz
Флаг -t означает «test» или «list», поэтому вы можете увидеть, с чем имеете дело, прежде чем распаковывать все это.
Я всегда заглядываю перед извлечением
Мне нравится перечислять содержимое перед тем, как что-то извлекать, особенно если я не уверен, что внутри. Для файлов .zip это выглядит так:
распаковать -l file.zip
А для файлов .tar я использую:
tar -tf файл.tar.gz

Иногда архив содержит одну папку верхнего уровня, а иногда — беспорядок из файлов. Знание того, что вы собираетесь извлечь, помогает избежать беспорядка.
После того, как я что-то распаковал, я обычно быстро делаю следующее:
ls
Это просто для подтверждения того, что все получилось так, как я и ожидал. Затем я перехожу в новую папку:
cd имя папки

Бонус: Объедините все в одну команду
Одна из лучших особенностей использования терминала — это то, как легко можно объединять команды в цепочку. Например, вот как я скачиваю и распаковываю файл в одну строку:
wget https://example.com/files.zip && unzip files.zip -d previously previously previously used for files.zip
Или с помощью Curl:
curl -L https://example.com/files.zip -o files.zip && unzip files.zip
Я настроил несколько функций в моем .bashrc, которые позволяют мне повторно использовать эти команды с любым URL. Так что теперь я могу просто запустить getzip [URL] или gettar [URL], не перепечатывая все это каждый раз.
Вы на пути к окончательной свободе
Научившись загружать и распаковывать файлы, не выходя из терминала, я изменил свою работу. Это быстрее, позволяет мне сосредоточиться и работает одинаково во всех системах Linux, которые я использую. После того, как вы сделаете это несколько раз, это станет мышечной памятью.
Я настоятельно рекомендую вам освоиться с этими командами, если вы занимаетесь разработкой, написанием скриптов или системной работой на Linux. Вы сэкономите время, сократите количество щелчков и почувствуете больший контроль над своей системой.