Come faccio a cercare in tutte le sottodirectory per trovarne una con un determinato nome?


Risposte:


18

Prova find /dir -type d -name "your_dir_name".

Sostituisci /dircon il nome della tua directory e sostituisci "your_dir_name"con il nome che stai cercando.

-type ddirà finddi cercare solo le directory.


1

Per una soluzione più generale per trovare una o più directory e cercarle per qualcosa come trovare vecchi indirizzi e-mail nei repository git, guarda il seguente schema:

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

1
echo **/target

o per ottenere una corrispondenza per riga:

printf %s\\n **/target

Questo funziona fuori dalla scatola in zsh. In bash, devi shopt -s globstarprima eseguire , e fai attenzione che questo attraversa anche i collegamenti simbolici alle directory. In ksh93, devi eseguire set -o globstarprima.

Se si desidera abbinare solo directory o collegamenti simbolici a directory, aggiungere un trailing /(cioè **/target/). In zsh, per abbinare solo le directory ma non i collegamenti simbolici alle directory, crealo **/target(/).

In qualsiasi shell, è possibile utilizzare il findcomando:

find . -name target

Su Linux e Cygwin, .è facoltativo. Se si desidera abbinare solo le directory, aggiungere -type d.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.