1

Я пытаюсь использовать find, чтобы найти один каталог, и я хотел бы, чтобы он остановился, как только он что-то найдет, возможно ли это?

В настоящее время я использую команду find /directory/to/search/ -maxdepth 4 -name *search_text* -type d -prune которая сокращает время выполнения на приличную величину, но все еще продолжается некоторое время после того, как находит то, что я ищу за. Поскольку это выполняется в скрипте, я не могу просто нажать Ctrl+c, чтобы остановить его. Какие-либо предложения?

3 ответа3

3

Конечно, просто беги

find /directory/to/search/ -maxdepth 4 -name "*search_text*" -type d -prune -print -quit

проверьте справочную страницу для поиска и ее раздел действий

2
find ... | head -1

Как только голова прочитает одну строку, она закроет трубу, которая убьет находку.

0

Я не думаю, что это напрямую возможно; поиск не имеет никакой возможности для этого.

Я нашел этот фрагмент, который убивает найти, когда он достигает второго результата:

find /directory/to/search/ -name *search_text* -print -exec perl -e 'kill "INT", getppid' \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .