mv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar
Você sempre pode proteger um personagem que tenha um significado especial no shell colocando uma barra invertida antes dele.
Você sempre pode dizer ao shell para interpretar uma sequência literalmente colocando-a entre aspas simples. O único caractere que você não pode colocar dentro de uma string literal é a própria aspa, já que indica o final da string literal. Você pode usar '\''
; significa "fim do literal, o caractere '
, início do literal", mas você pode pensar nele como uma maneira estranha de colocar uma única aspas dentro de uma string literal entre aspas simples.
O caractere ~
é especial apenas no início de um caminho, portanto, se você colocar uma indicação de diretório, ~
será o nome do arquivo nesse diretório.
Observe que, se o nome do arquivo começar com -
, apenas o último desses três métodos funcionará. Isso ocorre porque -
não é especial para o shell; tem um significado especial para o comando: indica uma opção. Outra maneira de proteger -
contra esse significado especial é colocar a opção especial --
antes dela: --
em uma linha de comando indica o fim das opções, somente nomes de arquivos (ou outros argumentos não-opcionais) podem vir depois disso.
Note também que o comando que você mostra deve ter copiado o arquivo para o seu diretório home, já que o caracter ~
deveria ter sido interpretado pelo shell. É possível que você tenha digitado errado e criado um arquivo que não é chamado de ~
. Execute ls -q
ou ls -Q
para ver se o nome do arquivo contém um caractere não imprimível. Se isso não fornecer nenhuma indicação visual, tente ls | od -t o1
, que mostrará o código octal de cada byte no nome do arquivo. Em ksh, bash ou zsh, você pode usar $'3'
em uma linha de comando para especificar um caractere por seu código octal. Como alternativa, você pode encontrar um padrão que corresponda ao arquivo. Por exemplo, se você determinar que o comprimento do nome do arquivo é 3 e que os únicos outros arquivos cujo comprimento é 2 são foo
e bar
, você pode mover o arquivo com
mv ./[^bf]?? ~/albumName.rar
E se você estiver disposto a usar o mouse e o nome for composto de caracteres imprimíveis que você não sabe digitar: copie e cole o nome do arquivo da saída de ls
.