Removendo um diretório com dois pontos do CIFS

2

Não consigo excluir um diretório que contenha dois pontos (usando o Ubuntu) em uma unidade de rede (sistema de arquivos: CIFS). Como posso excluir este diretório? (sem privilégios de root, mas tenho permissão de leitura / gravação)

Saída de rmdir ':5N0A210'/ e rmdir ':5N0A210' :

rmdir: failed to remove ':5N0A210': No such file or directory

Saída de ls -li :

123011781 drwxr-sr-x 2 username domain users      0 May 31 10:00 :5N0A210

Saída de ls -1b :

:5N0A210

Saída de find . -inum 123011781 -delete :

find: cannot delete ‘./:5N0A210’: No such file or directory

Saída de rename 's|:|-|g' * :

Can't rename :5N0A210 -5N0A210: No such file or directory

Acabei de perceber que posso criar o diretório ': test' e também excluir sem erros.

Eu também posso criar ': 5N0A210' e excluí-lo, mas ele é mostrado imediatamente após eu atualizar a GUI. ls -li mostra o mesmo número de inode de antes.

Eu também posso criar ': 4N0A210' (alterado '5' para '4') e excluí-lo sem erros.

Todos os testes foram feitos no mesmo diretório que ': 5N0A210'.

    
por lnrdedix 17.07.2018 / 19:34

2 respostas

0

No diretório em que :5N0A210 está localizado:

rm -rf ./\:5N0A210

rm -rf ':5N0A210'

rm -rf ./:5N0A210

rm -rf :5N0A210

Tudo isso funciona no meu ambiente.

UPDATE

Você também pode apenas removê-lo do lado do servidor usando os comandos acima. Se você não tiver acesso ao servidor, peça a alguém que tenha esse acesso para removê-lo.

    
por 17.07.2018 / 20:03
0

Há uma série de caracteres reservados que não são permitidos nos nomes de arquivos do Windows \ / : * ? " < > | . O CIFS segue essa regra, o que significa que você não pode usar nenhum desses caracteres em um nome de arquivo.

O SAMBA pode ser configurado com vfs catia para traduzir esses caracteres em alternativas visualmente semelhantes, mas esse não é o padrão e pode não estar configurado na sua instância. (Se estiver, um caractere curinga simples ? seria suficiente para corresponder aos dois pontos, ou seja, rmdir ?5N0A210 . Mas você já tentou isso e falhou.)

A única outra solução é remover o diretório diretamente no servidor que hospeda o sistema de arquivos. Se este for o Windows, então uma verificação do sistema de arquivos irá renomear o diretório. Se for Unix / Linux com o SAMBA, basta um simples rmdir (ou rm -rf ).

    
por 18.07.2018 / 07:45