Quando eu faço ls -l | grep ^d
, lista apenas diretórios no diretório atual.
O que eu gostaria de saber é o que faz o acento circunflexo ^
em ^d
média?
command-line
grep
special-characters
Deslizar
fonte
fonte
ls */
, em vez disso, que funcionará com ou sem a lista longa (ls -l
) e sem a necessidadegrep
(e, portanto, é muito mais rápida) e é menos provável (quels -l *
) correr para um problema muito longo da lista de argumentos (uma vez que coloca apenas diretórios no comando linha). Obviamente,find . -maxdepth 1 -type d
é ainda melhor, pois não atrapalha sua linha de comando.Respostas:
A resposta de Andy está correta, como pode ser visto na página do manual:
O motivo pelo qual ele funciona é o
-l
sinalizador parals
que ele use o formato de listagem longa. A primeira coisa mostrada em cada linha são as permissões legíveis por humanos para o arquivo, e o primeiro caractere éd
para um diretório ou-
para um arquivofonte
Isso é um sinal de intercalação, não uma cenoura. Significa "começo da linha". O grep está correspondendo apenas às linhas que começam com "d".
fonte