![Como combinar espaços em branco na string com o bash?](https://rvso.com/image/1601540/Como%20combinar%20espa%C3%A7os%20em%20branco%20na%20string%20com%20o%20bash%3F.png)
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.mp4
permanece 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 .*.mp4
corresponde 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.mp4
por exemplo (com ou sem dotglob
habilitado, 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