Сначала я думаю, что это откроет каждый файл и закроет его перед тем, как открыть второй файл для поиска слова? Это эффективно, если нет более эффективного способа?
Да, grep откроет и будет искать каждый файл по очереди. В большинстве настроек это наиболее эффективный способ. Если regexp является чрезвычайно сложным, эта задача твердого I / O связаны, т.е. узкое место в производительности чтения с диска, и ваш процессор не будет облагаться налогом.
В некоторых настройках ввод/вывод может быть распараллелен; например, если у вас есть конфигурация RAID-1 или RAID-0, то два (или более) компонента в массиве RAID могут считываться параллельно, что позволит сэкономить время. Если у вас есть такая настройка, вы можете вызвать инструмент типа GNU Parallel для вызова двух экземпляров grep (примеры команд см. в руководстве). В большинстве случаев, параллельный вызов двух экземпляров grep будет медленнее, так как головки дисков будут продолжать переключаться между файлами, к которым обращаются эти два экземпляра (при использовании SSD, параллельный вызов двух экземпляров, как правило, не приведет к значительному замедлению, но и не будет быстрее).
Если в командной строке передается более одного файла, grep выдает имя файла перед каждым совпадением в формате
path/to/file:line containing a match
Если вы используете шаблон подстановки или другие формы генерации имен файлов и хотите, чтобы имя файла отображалось даже в том случае, когда есть один совпадающий файл, скажите grep, чтобы он также искал пустое нулевое устройство .
grep REGEX /dev/null *.txt
(
grep -H REGEX *.txt
похоже, но использование/dev/null
имеет дополнительное преимущество в том, что он работает бесперебойно, даже если список совпадающих файлов пуст, в то время какgrep -H REGEX
читает со стандартного входа).
Вы можете легко проверить, является ли это многоадресный DNS (bonjour), просмотрев список известных хостов.
$ avahi-browse -a
Клиенты DHCP обычно отправляют свое имя на DHCP-сервере. Имя обычно записано в файле аренды и может быть добавлено к локальному DNS-серверу в качестве записи под домен по умолчанию. (Некоторые маршрутизаторы будут использовать .Local
, хотя .localnet
будет более уместным.) Если у вас есть зарегистрированный домен, рассмотрите возможность установки домена на маршрутизаторе к субдомене, такое как lan.example.com
.
Домен .local
обычно используется для автоматического открытия. Их несколько имен, используемые для этой услуги, такой как MDNS
, Bonjour
, а Avahi
. Современные резользеры часто будут возвращать имена от этой услуги.
В зависимости от операционной системы вы можете проверить записи DNS, используя Nslookup
или Cost
. Это вернет только значение, только если имя возвращается из DNS. Библиотека Resolver использует несколько источников, включая DNS, / etc / hosts
, и, необязательно, другие, включая MDNS, NIS, LDAP и многое другое. На Linux они должны быть перечислены в файле etc / nsswitch.conf
.
Вы можете проверить для процессов AVAHI-DAAHI
с помощью команды PS -EF | grep [a] Вахи
. Команда AVAHI-RESOLVE --NAME
может использоваться для поиска полностью квалифицированных имен, использующих сервисы Auto-Discovery.