Trova tutte le directory che contengono un determinato personaggio e stampale


7

Devo trovare tutte le directory che contengono un certo personaggio nel loro nome e stamparle.

Quindi se ho le directory:

abc cde fgh

E cerco "c" dovrei ottenere:

abc 
cde

Risposte:


15

I seguenti comandi eseguono la query richiesta:

find -name "*c*" -type d
  • inizia con la directory corrente (non è necessario specificare la directory nel caso della directory corrente)
  • -name "*c*" - con nome contiene la lettera c
  • -type d - che sono una directory

È possibile eseguire il comando su un'altra directory ( /full/path/to/dir) utilizzando:

find /full/path/to/dir -name "*c*" -type d

Maggiori informazioni nixCraft trova il comando


2
Nota: in questo caso -printnon è necessario, è l'azione predefinita. Inoltre, per iniziare solo con la directory corrente, è possibile che non si dia un percorso perché .è il percorso predefinito. Buona risposta però. I caratteri jolly possono essere una trappola come in questa domanda , citarli è molto importante qui.
Kamil Maciorowski l'

@KamilMaciorowski - grazie per il commento
Yaron,

@DevidDemetz - fantastico :-)
Yaron l'

Ho un'altra domanda. Se id ora piace rinominare il nome della directory. come la "c" che ho cercato dovrebbe diventare una "a". come lo farei
Devid Demetz,

@DevidDemetz - se hai una nuova domanda - come 1) trovare le directory con un modello specifico e 2) sostituire il nome delle directory con un modello specifico - per favore apri una nuova domanda per quello.
Yaron,

1

Se globstarè abilitato puoi usarlo

for d in **/*c*/; do echo $d; done

Il primo **corrisponderà a qualsiasi percorso di sottodirectory arbitrario. Quindi *c*/con le cartelle delle corrispondenze con il carattere c al suo interno

Se non è abilitato, puoi abilitarlo con shopt -s globstar

  • globstar

    • Se impostato, il modello **utilizzato in un contesto di espansione del nome file corrisponderà a tutti i file e a zero o più directory e sottodirectory. Se il modello è seguito da a /, corrispondono solo le directory e le sottodirectory.
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.