Altera o nome de um arquivo que contém espaços no nome

4

Eu não sei porque, mas quando eu vou mudar este nome de arquivo com o comando mv , ele aparece com o erro indicando not a directory .

-bash-4.1# mv {{ THEME SANITIZED }}.hacks.css myomega.hacks.css

    
por cea 27.03.2014 / 02:14

3 respostas

4

mv "{{ THEME SANITIZED }}.hacks.css" myomega.hacks.css funcionará.

    
por 27.03.2014 / 02:20
2

Você precisa dizer ao shell que deseja que as chaves e espaços façam parte do nome do arquivo, em vez de serem interpretados como sintaxe do shell.

Você pode digitar nomes de arquivos contendo caracteres especiais dentro de aspas simples. Isso funciona para todos os caracteres, exceto a citação única em si. Este é o método mais fácil em um script.

mv '{{ THEME SANITIZED }}.hacks.css' myomega.hacks.css

Se você precisar de uma aspa simples entre uma string entre aspas simples, poderá usar a seqüência de quatro caracteres '\'' .

mv 'It'\'s' wierd' this_is_weird

Como alternativa, você pode colocar uma barra invertida antes de qualquer caractere, o que faz com que perca seu significado especial. Não faz mal colocar uma barra invertida antes de caracteres que não tenham nenhum significado especial, mas é claro que é necessária uma digitação desnecessária extra.

mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css myomega.hacks.css

Se o nome do arquivo vier de uma variável, use aspas duplas em torno da expansão da variável para preservar caracteres especiais (com uma variável nua como em mv $source $destination , alguns caracteres especiais no valor da variável são expandidos).

source='{{ THEME SANITIZED }}.hacks.css'
destination=myomega.hacks.css
mv "$source" "$destination"

Na linha de comando, a maneira mais fácil de digitar um nome de arquivo é confiar na conclusão. Você precisará digitar pelo menos o primeiro caractere e pressionar Tab .

mv \{ Guia
mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css 

    
por 28.03.2014 / 03:12
1

você pode usar aspas duplas para scape ou scape com barra, como por exemplo:
usando aspas duplas:

mv "{{ THEME SANITIZED }}.hacks.css" myomega.hacks.css

usando barra:

mv \{\{\ THEME\ SANITIZED\ \}\}.hacks.css myomega.hacks.css

algo legal que algumas pessoas não sabem como remover ou renomear um diretório quando ele é iniciado com traço você pode traço: D
exemplo:

mkdir -directory_with_dash
rm -r -- -directory_with_dash
    
por 27.03.2014 / 04:43