ls: não é possível acessar /diretório/caminho/*.rar: não existe esse arquivo ou diretório

1

A partir dos seguintes resultados, parece que o * .rar está sendo captado literalmente e não expandido. man glob não dá detalhes de como se expande. Alguém poderia explicar por que?

~ / Films $ ls "Noite dos Mortos-Vivos (1968) /"  
Night_of_the_Living_Dead_1968.par2 Night_of_the_Living_Dead_1968.part23.rar.1  
Night_of_the_Living_Dead_1968.part01.rar Night_of_the_Living_Dead_1968.part24.rar  
...

~ / Films $ ls "Noite dos Mortos-Vivos (1968) / *. Rar"  
ls: não pode acessar Night of the Living Dead (1968) / *. rar: Esse arquivo ou diretório não existe  
~ / Films $ ls "$ (pwd) / Noite dos Mortos-Vivos (1968) / *. Rar"  
ls: não é possível acessar / home / g / Filmes / Noite dos Mortos-Vivos (1968) / *. rar: não existe arquivo ou diretório assim  
~ / Films $ ls "Noite dos Mortos-Vivos (1968) / * rar"  
ls: não é possível acessar Night of the Living Dead (1968) / * rar: Esse arquivo ou diretório não existe  
user985675
fonte
do ls "Noite dos Mortos-Vivos (1968)" / * rar
nos

Respostas:

4

As *aspas simples internas são tratadas literalmente. Portanto, você precisa colocar apenas o nome do diretório que possui espaços, entre aspas:

ls "Night of the Living Dead (1968)"/*.rar  

As *aspas duplas internas são expandidas pelo shell.

user22644
fonte
11
Um * dentro de aspas simples é tratado literalmente. Um * dentro de aspas duplas é expandido como um globo.
William Pursell
desculpas - eu estava pensando que a questão dos OPs era que ls estava definido para uma função ou um apelido que estava misturando as aspas; mas, de fato, é minha função que estava causando o "*" se expandir! Não consigo remover o voto negativo, a menos que você edite sua resposta.
William Pursell
Uma maneira mais fácil de fazer isso de maneira interativa é ls Night[TAB]/*.rar; deixe o shell completar o nome do diretório em vez de digitá-lo. A conclusão da guia do shell inserirá barras invertidas conforme necessário para escapar de qualquer caractere especial.
21330 Keith Thompson #: