当我运行命令
ls -l | grep ^d
时,它只会列出当前目录中的目录。
我想知道符号 ^ 在 ^d 中代表什么意思?ls -l | grep ^d
时,它只会列出当前目录中的目录。
我想知道符号 ^ 在 ^d 中代表什么意思?^
和 $
是元字符,分别匹配行的开头和结尾。grep 只匹配以 "d" 开头的行。
ls -l | grep ^d
显示当前目录中的所有目录。这是因为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"
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/
ls -lF | grep /$
的作用与 ls -l | grep ^d
相同。grep -E '[^[:digit:]]'
接受除数字以外的任何字符。'^'必须是[]内的第一个字符。
^d
表示“以d
开头”。 - Burhan Khalid