Подайте вход на дескрипторе файла кроме стандартного входа.
find /some/path/ -type f | grep -vif blacklist |
mplayer -shuffle -playlist /dev/fd/3 3<&0
Объяснение последней строки: данные из grep входят на стандартном входе, который является дескриптором файла 0. Нет никакого способа передать по каналу к где угодно, но стандартный вход в оболочке, но мы можем сделать немного дополнительной инфраструктуры. Во-первых, мы подключаем дескриптор файла 3 с тем, везде, где дескриптор файла 0: 3<&0
. Затем мы соединяем дескриптор файла 0 (т.е. стандартный вход) к терминалу: . Мы говорим mplayer читать плей-лист из дескриптора файла 3; mplayer ожидает имя файла, таким образом, мы передадим его
/dev/fd/3
, который при открытии процессом ведет себя точно так же, как дескриптор файла 3 в том процессе в той точке.
Обратите внимание, что порядок перенаправлений важен, и парадоксален, если у Вас есть неправильная интуиция. 3<&0 считали fd 3 из где fd 0 чтений прежде и fd 0 чтений от
/dev/tty
. имел бы и fd 0 и fd 3 считанными из
/dev/tty
.
Тот файл здесь (Fedora 18) принадлежит gdbm-devel
, пакет, содержащий его для Ubuntu, нужно назвать так же. Проверьте зависимости на источник, Вам, вероятно, будет нужен ряд -devel
пакеты, соответствующие каждой зависимости.
Что Вам нужен устаревший апач, который, кроме того, знал уязвимости? Почему апач распределения не работает? Это - вероятно, намного лучшая идея портировать то независимо от того, что требует что апач вперед, чем застрять в предыстории...
В человечности существует apt-file
пакет, который позволяет Вам находить пакет, который содержит указанный файл. Необходимо установить его с
sudo apt-get install apt-file
обновите кэш с
apt-file update
и, чем Вы может для поиска пакета, с которым Вы нуждаетесь
apt-file search ndbm.h
Существует только tendra пакет, который содержит файл с таким именем.
Также libgdbm-dev содержит/usr/include/gdbm-ndbm.h. Может быть это - то, в котором Вы нуждаетесь. Можно попытаться скомпилировать с ним.
PS. Также можно использовать поиск на сайте человечности.
dbm
была "база данных" (действительно библиотека для обработки таблицы базы данных только, части раннего Unix), который в свою очередь был заменен ndbm
(новый DBM, имел некоторые проблемы лицензирования); gdbm
(GNU dbm), был записан для замены обоих. Целая противная история освещена Википедией. Возможно, существует все еще a ndbm-dev
пакет в некотором несвободном repo?
– vonbrand
04.03.2013, 19:53
Начиная с Debian 10 и Ubuntu 18.04 (, возможно, более ранних, но это самый старый поддерживаемый выпуск с этим пакетом ), соответствующие файлы доступны вlibgdbm-compat-dev
:
apt install libgdbm-compat-dev
libgdbm-dev
это является самым подобным по имени, к сожалению, это не содержитndbm.h
, однако это содержит/usr/include/gdbm-ndbm.h
. Возможно, это - то, необходим, – rush 04.03.2013, 19:46db.h
часть Беркли DB, другой проект заменить DBM (в настоящее время принадлежащий Oracle, в соответствии с некоторой небесплатной лицензией). Это, возможно,config
сценарий lloking для доступной функциональности DBM? В этом случае необходимо просто оставить вещи быть. – vonbrand 04.03.2013, 19:57