Sim, rm *.xvg somente os arquivos que terminam com .xvgno diretório atual serão excluídos . Aqui está o porquê.
Quando você digita um comando como este, o trabalho é dividido entre o shell que você está usando (vamos assumir o bash) e o comando binário.
Você pode localizar o binário digitando which rm. Este pequeno programa cuida de desvincular arquivos. Programas como esse podem ser iniciados na linha de comando e podem ler uma lista de argumentos prog arg1 arg2 arg3quando iniciados. No caso de rm, eles são interpretados como uma lista de nomes de arquivos totalmente qualificados a serem excluídos. Portanto, se você estiver em um diretório que contém o arquivo foo.bar, a digitação delete 'foo.*'resultará emrm: foo.*: No such file or directory . Observe as aspas simples ao redor do padrão do arquivo; elas dizem ao shell para passar o argumento para o shell como está.
No entanto, se você digitar rm *.barno mesmo diretório, ele excluirá o arquivo. O que está acontecendo aqui é que seu shell, que é o programa que você está usando para digitar comandos, está executando algumas transformações antes de passar os argumentos para o comando. Um deles é chamado de 'expansão de nome de arquivo', também conhecido como 'globbing'. Você pode ver uma lista de expansões de nome de arquivo bash aqui . Uma das expansões mais comuns é* , que é expandida para nomes de arquivos no diretório atual.
Uma maneira simples de observar os globs no trabalho é usar echo, que imprime todos os argumentos passados a ele através do shell. Então, digitando echo *no mesmo diretório será exibido foo.bar. Portanto, quando você digita rm *.bar, o que realmente está acontecendo é que o shell expande a lista de argumentos para foo.bare passa isso para orm comando.
Existem algumas maneiras de controlar o globbing. Nas versões recentes do bash, por exemplo, você pode ativar uma opção chamada globstar, que fará a expansão recursiva. A digitação echo **/*.barmostrará uma lista de todos os arquivos que terminam .barem todas as subpastas. Portanto, digitar o rm **/*.barbasstar ativado pela globstar excluirá recursivamente todos os arquivos correspondentes nas subpastas.
rm -f {*.xvg,.*.xvg}para remover também arquivos ocultos. Erm -R -f {*.xvg,.*.xvg}para remover também diretórios.