Почему grep иногда показывает имя файла, иногда нет?

-r делает то же самое для ls как tac делает для любой команды, которая должна инвертировать упорядочивание файла.

Таким образом, Вы могли просто записать

ls -ltr

Из страницы справочника:

  • -l Список в длинном формате. Если вывод к терминалу, полная сумма для всех размеров файла производится на строке перед длинным списком.
  • -r Инвертируйте порядок вида получить обратный лексикографический порядок или самые старые записи сначала (или самые большие файлы в последний раз, если объединено с видом размером.
  • -t Вид ко времени изменил (последний раз изменил сначала) прежде, чем отсортировать операнды по лексикографическому порядку.
8
10.12.2013, 01:27
1 ответ

В Вашем первом примере шарик, должно быть, расширился до единственного файла. В этом случае, grep (по умолчанию) не предварительно ожидает имя файла.

Второй пример, должно быть, расширился до нескольких имен файлов, и grep действительно предварительно ожидает имя файла в этом случае.

Можно использовать -H опция всегда предварительно ожидать имя файла к выводу, или -h никогда не получать его.

Если Ваш grep испытывает недостаток в этих опциях, можно использовать grep REGEX /path/to/pattern/* /dev/null чтобы всегда получить имя файла (никогда нет никакого хита в /dev/null но это рассчитывает как имя файла), или cat /path/to/pattern/* | grep REGEX никогда не получать имя файла.

13
27.01.2020, 20:10

Теги

Похожие вопросы