Como combinar espaços em branco na string com o bash?

Como combinar espaços em branco na string com o bash?
ls
Session 9 - Terminal Value.mp4

Agora eu quero excluí-lo.

shopt -s dotglob
rm -rf  .*.mp4

Não tem efeito, o arquivo Session 9 - Terminal Value.mp4permanece lá. .Talvez não possa corresponder ao espaço em branco.

Responder1

dotglobé usado para combinar nomes de arquivos começando com a .(dotfiles) que de outra forma ficam ocultos quando padrões glob são usados ​​(a menos que esteja .explicitamente presente no padrão).

Exemplo:

$ shopt dotglob
dotglob         off
$ touch .lala
$ ls *lala
ls: cannot access '*lala': No such file or directory
$ shopt -s dotglob
$ shopt dotglob
dotglob         on
$ ls *lala
.lala

Seu padrão .*.mp4corresponde a nomes de arquivos começando com um literal .seguido por qualquer string *, seguido por .mp4.

Corresponderia ao nome do arquivo, .Session 9 - Terminal Value.mp4por exemplo (com ou sem dotglobhabilitado, já que o primeiro .está presente no padrão).

Como globbing também corresponde a caracteres de espaço, tudo que você precisa é

rm *.mp4

informação relacionada