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  

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.


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 #:
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.