Cosa significa ^ d in ls -l | grep ^ d?


13

Quando lo faccio ls -l | grep ^delenca solo le directory nella directory corrente.

Quello che mi piacerebbe sapere è ciò che fa il punto di inserimento ^in ^dmedia?


Per informazioni correlate, cerca le espressioni regolari o consulta questa pagina sull'uso delle espressioni regolari in grep: robelle.com/smugbook/regexpr.html
Trey Hunner

Funziona, ma non è ottimale. Considera ls */invece, che funzionerà con o senza la lunga lista ( ls -l) e senza la necessità grep(e quindi è leggermente più veloce) ed è meno probabile (che ls -l *) incappare in un elenco di argomenti problema troppo lungo (dal momento che inserisce solo le directory nel comando linea). Certo, find . -maxdepth 1 -type dè ancora meglio, in quanto non ingombra la riga di comando.
Adam Katz,

Risposte:


21

La risposta di Andy è corretta, come si vede nella pagina man:

ancoraggio

Il carattere ^ e il simbolo di dollaro $ sono meta-caratteri che corrispondono rispettivamente alla stringa vuota all'inizio e alla fine di una riga.

Il motivo per cui funziona è il -lflag per lsutilizzare il formato con elenco lungo. La prima cosa mostrata in ogni riga sono le autorizzazioni leggibili dall'uomo per il file, e il primo carattere è dper una directory o -per un file


14

È un guardiano, non una carota. Significa "inizio della linea". Il grep sta abbinando solo le righe che iniziano con "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.