Exclui arquivos com nomes de arquivos ímpares [fechados]

1

Eu tenho esses dois arquivos no meu diretório pessoal que não consigo excluir: -

-rw-rw-r-- 1 steve steve       20551 Jan 27 23:51 \home\steve?esult_picture.png
-rw-rw-r-- 1 steve steve       22238 Jan 27 23:54 \home\steve?esult.png

As mensagens de erro são: -

rm: cannot remove 'homesteve?esult_picture.png': No such file or directory
rm: cannot remove 'homesteve?esult.png': No such file or directory

chmod dá um erro muito semelhante

touch '\home\steve?esult_picture.png'
sudo rm -f '\home\steve?esult_picture.png'

touch '\home\steve?esult.png'
sudo rm -f '\home\steve?esult.png'

também não os remove.

Tenho quase certeza de que eles foram criados com erro usando um script python.

Usando o Windows Explorer para visualizar o compartilhamento de smb, eles são chamados _1UPF8 ~ X.PNG e _UYBX6 ~ Q.PNG e são visíveis como imagens, como seria de se esperar. Eu não posso fazer mais nada com eles, devido à falta de permissões apropriadas.

Alguma ideia de como posso removê-los?

Steve

    
por Steve W 01.02.2018 / 02:18

4 respostas

2

O ponto de interrogação mostrado por ls provavelmente não é um ponto de interrogação real no nome do arquivo, mas um caractere não imprimível. Tente usar ls -b , que imprime esses caracteres não imprimíveis como seu escape de estilo C; por exemplo. \ t para uma guia.

Você também pode simplesmente tentar rm \home\steve?esult.png , pois o ponto de interrogação corresponderá a um caractere (não importa qual seja o caractere). No entanto, a contrabarra precisa ser duplicada, já que agora está tentando atribuir significado especial ao seguinte caractere.

Então, isso deve funcionar:

rm -f \home\steve?esult_picture.png
rm -f \home\steve?esult.png

Como alternativa, isso também pode ser útil:

rm -fi *png

ou, se houver muitos arquivos no diretório:

rm -fi *home*steve*esult*.png

O -i significa avisar antes de cada remoção; responda apenas com y aos arquivos que você deseja remover.

    
por 01.02.2018 / 08:45
0

Você precisará usar aspas duplas para excluí-las:

rm -f "\home\steve?esult_picture.png"
rm -f "\home\steve?esult.png"

As barras invertidas são caracteres de escape, indicando que os caracteres a seguir têm significados especiais. Aspas duplas indicarão que são parte do nome do arquivo e permitem que você exclua os arquivos com o comando rm .

    
por 01.02.2018 / 03:16
0

É bom dominar o comando rm para poder usá-lo para qualquer tipo de nome de arquivo estranho (como aqueles começando com - por exemplo), e você pode aprender a fazer isso com outras respostas aqui. / p>

Existe também outra solução, que pode ser útil em muitos outros casos. Instale a ferramenta chamada mc aka Midnight Commander . É um navegador de arquivos em execução no terminal, portanto, você pode listar arquivos, destacar o que deseja operar e, em seguida, pressionar F8 para excluí-lo. Quaisquer que sejam os personagens no nome.

Veja link

    
por 02.02.2018 / 02:30
0

Obrigado pelas respostas, eu consegui me livrar deles usando uma Área de Trabalho Remota e selecionando os arquivos que devem ter apenas resolvido os caracteres ímpares.

    
por 02.02.2018 / 10:21