Wenn ich es tue ls -l | grep ^d
, listet nur Verzeichnisse im aktuellen Verzeichnis.
Was ich möchte , ist wissen , was funktioniert die caret ^
in ^d
bedeuten?
command-line
grep
special-characters
Gleiten
quelle
quelle
ls */
stattdessen, welche Methode mit oder ohne die lange Auflistung (ls -l
) und ohne die Notwendigkeitgrep
(und damit etwas schneller) funktioniert und mit geringerer Wahrscheinlichkeit (alsls -l *
) auf eine zu lange Argumentliste stößt (da sie nur Verzeichnisse in den Befehl einfügt) Linie). Natürlichfind . -maxdepth 1 -type d
ist es sogar noch besser, da es Ihre Befehlszeile überhaupt nicht überfüllt.Antworten:
Andys Antwort ist richtig, wie in der Manpage zu sehen:
Der Grund dafür ist, dass das
-l
Flagls
das Langlistenformat verwendet. Das erste, was in jeder Zeile angezeigt wird, sind die lesbaren Berechtigungen für die Datei, und das erste Zeichen davon ist entwederd
für ein Verzeichnis oder-
für eine Dateiquelle
Das ist ein Caret, keine Karotte. Es bedeutet "Beginn der Zeile". Das grep stimmt nur mit Zeilen überein, die mit "d" beginnen.
quelle