Kiedy to robię ls -l | grep ^d
, wyświetla tylko katalogi w bieżącym katalogu.
Co chciałbym wiedzieć, co robi daszek ^
w ^d
średniej?
command-line
grep
special-characters
Poślizg
źródło
źródło
ls */
zamiast tego, który będzie działał z lub bez długiego listowania (ls -l
) i bez potrzebygrep
(a zatem jest bardzo nieznacznie szybszy) i jest mniej prawdopodobne (niżls -l *
), że wpadnie na zbyt długą listę argumentów (ponieważ wstawia do katalogu tylko katalogi linia). Oczywiściefind . -maxdepth 1 -type d
jest jeszcze lepiej, ponieważ w ogóle nie zaśmieca linii poleceń.Odpowiedzi:
Odpowiedź Andy'ego jest poprawna, jak widać na stronie podręcznika:
Powodem, dla którego działa, jest
-l
flaga, którals
używa formatu długiej listy. Pierwszą rzeczą pokazaną w każdym wierszu są czytelne dla człowieka uprawnienia do pliku, a pierwszy znak to albod
dla katalogu, albo-
dla plikuźródło
To jest karetka, a nie marchewka. Oznacza „początek linii”. Grep pasuje tylko do linii rozpoczynających się od „d”.
źródło