extraia um arquivo chamado ~

extraia um arquivo chamado ~

Então baixei um álbum de música do aMule e ele está localizado no .aMule/Incomingdiretório. Tentei movê-lo com o seguinte comando:

 mv albumName.rar ~

Isso me deixou com um arquivo ~no .aMule/Incomingqual não pude renomear porque o til está reservado para o diretório inicial. Eu sei que posso acessá-lo via Nautilus mostrando arquivos ocultos. Como posso retirá-lo no terminal?

Atualizar É assim que parece agora

   manuzhang@manuzhang-R458-R457:~/.aMule/Incoming$ ls -l
   total 328
   -rw-r--r-- 1 manuzhang manuzhang 297266 2012-03-19 12:07 ~
   -rw-r--r-- 1 manuzhang manuzhang  34479 2011-10-11 19:51 [kat.ph]friends.season.1.with.english.subtitles.torrent

Responder1

mv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar

Você sempre pode proteger um caractere 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 simples, pois indica o fim da string literal. Você pode usar '\''em vez disso; significa “fim do literal, o caractere ', início do literal”, mas você pode pensar nisso como uma maneira estranha de colocar uma aspa simples dentro de uma string literal entre aspas simples.

O caractere ~só é especial no início de um caminho, portanto se você colocar uma indicação de diretório, ~será o nome do arquivo neste 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 forma de se proteger -contra esse significado especial é colocar a opção especial --antes dela: --em uma linha de comando indica o fim das opções, apenas nomes de arquivos (ou outros argumentos que não sejam de opção) podem vir depois dela.

Observe também que o comando que você mostra deveria ter copiado o arquivo para seu diretório inicial, pois o ~caractere deveria ter sido interpretado pelo shell. É possível que você tenha digitado errado e criado um arquivo que não se chama ~. Execute ls -qou ls -Qpara 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 para cada byte no nome do arquivo. Em ksh, bash ou zsh, você pode usar $'\123'uma linha de comando para especificar um caractere por seu código octal. Como alternativa, você poderá 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 fooe bar, você poderá mover o arquivo com

mv ./[^bf]?? ~/albumName.rar

E se você quiser 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.

Responder2

Especifique um caminho para o arquivo.

cat ./~

Responder3

A atualização colada mostra que é algum caractere ASCII ou Unicode alto, não um simples til... Você pode usar mcoutro gerenciador de arquivos? Que tal mover tudooutrofora desse diretório e, em seguida, usando o preenchimento de tabulação?

informação relacionada