Jak przeszukać wszystkie podkatalogi, aby znaleźć taki o określonej nazwie?


Odpowiedzi:


18

Spróbować find /dir -type d -name "your_dir_name".

Zamień /dirna nazwę katalogu i zamień "your_dir_name"na nazwę, której szukasz.

-type dkaże findszukać tylko katalogów.


1

W celu uzyskania bardziej ogólnego rozwiązania znajdowania jednego lub większej liczby katalogów i wyszukiwania ich, na przykład znajdowania starych adresów e-mail w repozytoriach git, zobacz następujący wzorzec:

find . -type d -name .git -print0|\
    xargs -0r -I {} find {} -type f -print0 |\
    xargs -0r grep -e 'my.old@email.address'

1
echo **/target

lub uzyskać jeden mecz w linii:

printf %s\\n **/target

Działa to natychmiast po wyjęciu z pudełka. W bash musisz shopt -s globstarnajpierw uruchomić i uważaj, że to również przechodzi przez dowiązania symboliczne do katalogów. W ksh93 musisz uruchomić set -o globstarnajpierw.

Jeśli chcesz dopasować tylko katalogi lub dowiązania symboliczne do katalogów, dodaj końcowy /(tj **/target/.). W zsh, aby dopasować tylko katalogi, ale nie dowiązania symboliczne do katalogów, zrób to **/target(/).

W dowolnej powłoce możesz użyć findpolecenia:

find . -name target

W systemach Linux i Cygwin .opcja jest opcjonalna. Jeśli chcesz dopasować tylko katalogi, dodaj -type d.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.