Число соответствует тому, какой раздел руководства, от которого страница; 1 пользовательские команды, в то время как 8 материал системного администратора. Страница справочника для человека сама (man man
) объясняет это и перечисляет стандартные:
MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands
2 System Calls
3 C Library Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. al.
7 Miscellanea
8 System Administration tools and Daemons
Distributions customize the manual section to their specifics,
which often include additional sections.
Существуют определенные условия, которые имеют различные страницы в различных разделах (например. printf
поскольку команда появляется в разделе 1, как a stdlib
функция появляется в разделе 3); в случаях как этот можно передать число раздела man
перед названием страницы для выбора, какой Вы хотите, или использование man -a
показать каждую страницу соответствия подряд:
$ man 1 printf
$ man 3 printf
$ man -a printf
Можно сказать то, что разделяет термин, присоединяется man -k
(эквивалентный apropos
команда). Это сделает соответствия подстроки также (например, это покажет sprintf
если Вы работаете man -k printf
), таким образом, необходимо использовать ^term
ограничить его:
$ man -k '^printf'
printf (1) - format and print data
printf (1p) - write formatted output
printf (3) - formatted output conversion
printf (3p) - print formatted output
printf [builtins] (1) - bash built-in commands, see bash(1)
Необходимо загрузить файлы на временный файл, потому что (заключение в кавычки разархивировать страницы справочника):
Архивы, считанные из стандартного входа, еще не поддерживаются, кроме с funzip (и затем только первый член архива может быть извлечен).
Просто объедините команды:
wget http://www.vim.org/scripts/download_script.php?src_id=11834 -O temp.zip; unzip temp.zip; rm temp.zip
Но для создания этого более гибким, необходимо, вероятно, поместить его в сценарий, таким образом, Вы сохраняете некоторый ввод и чтобы удостовериться, что Вы случайно не перезаписываете что-то, что Вы могли использовать mktemp
команда для создания безопасного имени файла для временного файла:
#!/bin/bash
TMPFILE=`mktemp`
PWD=`pwd`
wget "$1" -O $TMPFILE
unzip -d $PWD $TMPFILE
rm $TMPFILE
Я не думаю, что Вы даже хотите потрудиться передавать вывод wget по каналу в, разархивировали.
Из статьи "ZIP (file format)" Википедии:
Zip-файл определяется присутствием центрального каталога, расположенного в конце файла.
wget должен полностью закончить загрузку, прежде чем разархивируют, может сделать любую работу, таким образом, они работают последовательно, не вплетенный, как можно было бы думать.
Если у вас установлен JDK, вы можете использовать jar
:
wget -qO- http://example.org/file.zip | jar xvf /dev/stdin
Это репост моего ответа на аналогичный вопрос:
Формат файла ZIP включает каталог (индекс) в конце архив. Этот каталог указывает, где в архиве находится каждый файл, и, таким образом, обеспечивает быстрый произвольный доступ без чтения всего архива.
Это может создать проблему при попытке чтения ZIP-архива через конвейер, поскольку доступ к индексу не осуществляется до самого конца, и поэтому отдельные элементы не могут быть правильно извлечены до тех пор, пока файл не будет полностью прочитан и больше недоступно. Поэтому неудивительно, что большинство распаковщиков ZIP просто перестают работать, когда архив передается по конвейеру.
Каталог в конце архива - это не только место, где метаинформация файла хранится в архиве. Кроме того, отдельные записи также включают эту информацию в заголовок локального файла в целях избыточности.
Хотя не каждый распаковщик ZIP будет использовать локальные заголовки файлов, когда индекс недоступен, внешние интерфейсы tar и cpio для libarchive (также известные как bsdtar и bsdcpio) могут и будут делать это при чтении через канал, Это означает, что возможно следующее:
wget -qO- http://example.org/file.zip | bsdtar -xvf-
Правильный синтаксис:
$ unzip <(curl -sL https://www.winpcap.org/archive/1.0-docs.zip)
, но он не будет работать из-за ошибки ( Info-ZIP на Debian ):
lseek(3, 0, SEEK_SET) = -1 ESPIPE (Illegal seek)
Archive: /dev/fd/63
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of /dev/fd/63 or
/dev/fd/63.zip, and cannot find /dev/fd/63.ZIP, period.
или в BSD / OS X:
Trying to read large file (> 2 GiB) without large file support
Это потому, что стандартные инструменты zip в основном используют lseek
функцию для установки смещения файла в конце, чтобы прочитать его конец записи центрального каталога . Он находится в конце структуры архива и требуется для чтения списка файлов (см .: Структура формата Zip-файла ). Следовательно, файл не может быть FIFO, конвейером, оконечным устройством или любым другим динамическим, потому что входной объект не может быть позиционирован функцией lseek
.
Итак, у вас есть следующие обходные пути:
tar.gz
), Репост моего ответа:
BusyBox unzip
может принимать стандартный ввод и извлекать все файлы.
wget -qO- http://downloads.wordpress.org/plugin/akismet.2.5.3.zip | busybox unzip -
Дефис после unzip
означает использование стандартного ввода в качестве ввода.
Можно даже,
cat file.zip | busybox unzip -
Но это просто лишнее unzip file.zip
.
Если ваш дистрибутив использует BusyBox по умолчанию (, например. Alpine ), просто запустите unzip -
.
У меня это хорошо работает:
tar xvf <(curl -sL http://www.vim.org/scripts/download_script.php?src_id=11834)
jar xvf <(curl -sL http://www.vim.org/scripts/download_script.php?src_id=11834)
wget -qO- http://www.vim.org/scripts/download_script.php?src_id=11834 | tar xvf -
wget -qO- http://www.vim.org/scripts/download_script.php?src_id=11834 | jar xvf -
Архив zip
не является последовательным, поскольку оглавление часто находится в конце файла, что затрудняет потоковую -распаковку.
Альтернативное решение — посмотреть, можете ли вы получить другой формат файла, например .tar.gz
.
Например, если вы загружаете файл .zip
с GitHub, почти всегда доступна версия .tar.gz
.
Например,
Обратите внимание на шаблон --просто замените .zip
на .tar.gz
и подключитесь к| tar xzf -
Если в zip только один файл, можно использовать zcat
илиgunzip
:
wget -qO- http://www.vim.org/scripts/download_script.php?src_id=11834 | gunzip
К вашему сведению :Вот определения gunzip
и zcat
в моей системе:
$ grep ^exec $(which gunzip zcat)
/bin/gunzip:exec gzip -d "$@"
/bin/zcat:exec gzip -cd "$@"
wget file.zip && unzip file.zip
то же какwget file.zip; unzip file.zip
или каждый предпочтен по другому? Спасибо :) – jaggedsoft 03.12.2016, 22:10wget && unzip
будет работать разархивировали только если wget, за которым следуют.wget ; unzip
будет работать разархивировали так или иначе, возможно указывающий не существующий файл. – temoto 07.02.2017, 13:37