Как определить, что вывод команды "find" пуст? - PullRequest
13 голосов
/ 30 июня 2011

Я хочу вернуть состояние выхода 0, если выход пуст, и 1 в противном случае:

find /this/is/a/path/ -name core.*

Ответы [ 4 ]

15 голосов
/ 30 июня 2011

Когда вы говорите, что хотите вернуть определенное число, вы имеете в виду статус выхода?Если так:

[[ -z `find /this/is/a/path/ -name core.*` ]]

И поскольку вас интересует только ответ «да / нет», вы можете изменить свою находку на:

[[ -z `find /this/is/a/path/ -name core.* -print -quit` ]]

, которая остановится после первого ядрафайл найден.Без этого, если корневой каталог большой, поиск может занять некоторое время.

5 голосов
/ 30 июня 2011

Вот моя версия.:)

[ -z "$(find /this/is/a/path/ -name 'core.*')" ] && true

Отредактировано для краткости:

[ -z "$(find /this/is/a/path/ -name 'core.*')" ]
3 голосов
/ 30 июня 2011

Возможно много вариантов, но это один:

test $(find /this/is/a/path/ -name core.* | wc -c) -eq 0
1 голос
/ 19 февраля 2013

Возможно, это

find /this/is/a/path/ -name 'core.*' | read
...