^字符在grep ^ d中意味着什么?

Ani*_*kur 5 unix command-line grep

当我这样做时,ls -l | grep ^d它只列出当前目录中的目录.

我想知道的是^ d中的字符是什么意思?

NIN*_*OOP 12

插入符号^和美元符号$是元字符,分别匹配行的开头和结尾处的空字符串.grep仅匹配以"d"开头的行.


fed*_*qui 5

为了补充The New Idiot 的好答案,我想指出这一点:

ls -l | grep ^d
Run Code Online (Sandbox Code Playgroud)

显示当前目录中的所有目录。那是因为在目录信息的开头ls -l添加了一个d

的格式ls -l是这样的:

-rwxr-xr-x  1 user group    0 Jun 12 12:25 exec_file
-rw-rw-r--  1 user group    0 Jun 12 12:25 normal_file
drwxr-xr-x 16 user group 4096 May 24 12:46 dir
^
|___ see the "d"
Run Code Online (Sandbox Code Playgroud)

为了更清楚,您可以在目录信息的末尾ls -lF包含一个/

-rwxr-xr-x  1 user group    0 Jun 12 12:25 exec_file*
-rw-rw-r--  1 user group    0 Jun 12 12:25 normal_file
drwxr-xr-x 16 user group 4096 May 24 12:46 dir/
Run Code Online (Sandbox Code Playgroud)

所以ls -lF | grep /$会做同样的事情ls -l | grep ^d