Além dessas respostas perspicazes, há vários padrões que você pode usar para corresponder a grupos de arquivos. Com expansão de nome de arquivo e pattern de padrões , você pode dizer ao bash para combinar coisas como todos os arquivos em um diretório, todos os arquivos iniciando com alguma coisa, todos os arquivos com a mesma extensão, etc.
É claro que, se você estiver usando o rm, você deve ter muito cuidado para não excluir as coisas que não deseja. Eu recomendo usar ls primeiro, para listar o que o argumento do caminho mostrará.
Aqui estão alguns exemplos.
-
Digamos que você queira corresponder todos os arquivos em um diretório, para ver o que um comando rm
processaria, procure com ls
. Você pode usar o operador asterisco ( *
) glob para corresponder a qualquer quantidade de caracteres.
ls /some/path/*
-
Ou talvez todos os arquivos que começam com teste:
ls /some/path/test*'
-
Como sobre todos os arquivos que começam com teste, com um caractere e terminam com .sh
. Você poderia usar o caractere de interrogação ( ?
) para corresponder a um caractere.
ls /some/path/test?.sh
-
Digamos que você tenha nove arquivos test1.sh
, test2.sh
, etc, até test9.sh
e deseja excluir esses scripts de teste. Você também tem um testa.sh
que deseja manter. Você pode pesquisar todos os arquivos que começam com teste, os números de um a nove ou classes não alfabéticas e terminar com .sh
. Eles usam os colchetes ( []
) para corresponder a grupos de caracteres.
ls /some/path/test[1-9].sh
ls /some/path/test[!:alpha:].sh
Correspondências como essas também podem ser roteirizadas de forma bastante simples, permitindo agrupamentos muito bem ajustados ou amplos de arquivos dentro de scripts para automação.