<Anterior | Conteúdo | Próxima>
Expansão do nome do caminho
O mecanismo pelo qual os curingas funcionam é chamado expansão do nome do caminho. Se tentarmos algumas das técnicas que empregamos em nossos capítulos anteriores, veremos que são realmente expansões. Dado um diretório inicial parecido com este:
[me @ linuxbox ~] $ ls | ||
Área de trabalho ls-output.txt | FOTOS | Modelos |
Documentos Música | Público | Vídeos |
poderíamos realizar as seguintes expansões:
[me @ linuxbox ~] $ echo D *
Documentos da área de trabalho
[me @ linuxbox ~] $ echo D *
Documentos da área de trabalho
e:
[me @ linuxbox ~] $ echo * s
Documentos Imagens Modelos Vídeos
[me @ linuxbox ~] $ echo * s
Documentos Imagens Modelos Vídeos
ou mesmo:
[me @ linuxbox ~] $ echo [[: superior:]] *
Documentos da área de trabalho Música Imagens Modelos públicos Vídeos
[me @ linuxbox ~] $ echo [[: superior:]] *
Documentos da área de trabalho Música Imagens Modelos públicos Vídeos
e olhando além de nosso diretório inicial:
[me @ linuxbox ~] $ echo / usr / * / share
/ usr / kerberos / share / usr / local / share
[me @ linuxbox ~] $ echo / usr / * / share
/ usr / kerberos / share / usr / local / share
Expansão do nome do caminho de arquivos ocultos
Como sabemos, os nomes de arquivos que começam com um caractere ponto são ocultados. A expansão do nome do caminho também respeita esse comportamento. Uma expansão como:
eco *
não revela arquivos ocultos.
À primeira vista, pode parecer que podemos incluir arquivos ocultos em uma expansão, iniciando o padrão com um ponto inicial, como este:
echo. *
Quase funciona. No entanto, se examinarmos os resultados de perto, veremos que os nomes “.” e “..” também aparecerá nos resultados. Como esses nomes se referem ao diretório de trabalho atual e seu diretório pai, o uso desse padrão provavelmente produzirá um resultado incorreto. Podemos ver isso se tentarmos o comando:
ls -d. * | menos
Para melhor realizar a expansão do nome do caminho nesta situação, temos que empregar um padrão mais específico:
echo. [!.] *
Esse padrão se expande em cada nome de arquivo que começa com um ponto, não inclui um segundo ponto e é seguido por quaisquer outros caracteres. Isso funcionará corretamente com a maioria dos arquivos ocultos (embora ainda não inclua nomes de arquivo com vários pontos iniciais). o ls comando com o -A opção (“quase todos”) fornecerá uma lista correta de arquivos ocultos:
ls -A