What does ^d mean in ls -l | grep ^d

command linegrepspecial characters

When I do ls -l | grep ^d it lists only directories in the current directory.

What I'd like to know is what does the caret ^ in ^d mean?

Best Answer

Andy's answer is correct, as seen in the man page:

Anchoring

The caret ^ and the dollar sign $ are meta-characters that respectively match the empty string at the beginning and end of a line.

The reason it works is the -l flag to ls makes it use the long-listing format. The first thing shown in each line is the human-readable permissions for the file, and the first character of that is either d for a directory or - for a file

Related Question