De alguma forma, um programa criou um arquivo com um nome de arquivo quebrado que não pode mais ser excluído. Qualquer tentativa de excluir o arquivo resulta em "Nenhum arquivo ou diretório", como se o arquivo não estivesse lá.
O problema parece ser um caractere de controle ASCII 2 no nome do arquivo.
$ ls
??[????ة?X
$ ls | xxd
00000000: 3f3f 5b3f 3f02 3f3f d8a9 3f58 0a ??[??.??..?X.
# Typing '?' and letting the bash complete the filename
$ rm \?\?\[\?\?^B\?\?ة\?X
rm: das Entfernen von '??[??'$'$ zcat /var/log/upstart/mountall.log.1.gz
...
fsck von util-linux 2.25.1
/dev/sdc3: sauber, 544937/6815744 Dateien, 21618552/27242752 Blöcke
...
2''??ة?X' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
$ rm *
rm: das Entfernen von '??[??'$'$ cat fix.c
#include <stdio.h>
#include <errno.h>
int main() {
char filename[20];
sprintf(filename, "%c%c%c%c%c%c%c%c%c%c%c%c", 0x3f,0x3f,0x5b,0x3f,0x3f,0x02,0x3f,0x3f,0xd8,0xa9,0x3f,0x58);
printf("filename = %s\n", filename);
int result = remove(filename);
printf("result = %d\n", result);
printf("errno = %d\n", errno);
perror("Error");
return 0;
}
$ gcc -o fix fix.c && ./fix
filename = ??[????ة?X
result = -1
errno = 2
Error: No such file or directory
2''??ة?X' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
$ ls -i
2532 ??[?????ة?X
$ find -inum 2532 -delete
find: ‘./??[??$ mount | grep " / "
/dev/sdc3 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
$ uname -a
Linux hera 4.13.0-16-generic #19-Ubuntu SMP Wed Oct 11 18:35:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 17.10 \n \l
2??ة?X’ kann nicht gelöscht werden.: Datei oder Verzeichnis nicht gefunden
Eu tentei executar fsck
após a reinicialização, mas o arquivo ainda está lá.
$ ls
??[????ة?X
$ ls | xxd
00000000: 3f3f 5b3f 3f02 3f3f d8a9 3f58 0a ??[??.??..?X.
# Typing '?' and letting the bash complete the filename
$ rm \?\?\[\?\?^B\?\?ة\?X
rm: das Entfernen von '??[??'$'$ zcat /var/log/upstart/mountall.log.1.gz
...
fsck von util-linux 2.25.1
/dev/sdc3: sauber, 544937/6815744 Dateien, 21618552/27242752 Blöcke
...
2''??ة?X' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
$ rm *
rm: das Entfernen von '??[??'$'$ cat fix.c
#include <stdio.h>
#include <errno.h>
int main() {
char filename[20];
sprintf(filename, "%c%c%c%c%c%c%c%c%c%c%c%c", 0x3f,0x3f,0x5b,0x3f,0x3f,0x02,0x3f,0x3f,0xd8,0xa9,0x3f,0x58);
printf("filename = %s\n", filename);
int result = remove(filename);
printf("result = %d\n", result);
printf("errno = %d\n", errno);
perror("Error");
return 0;
}
$ gcc -o fix fix.c && ./fix
filename = ??[????ة?X
result = -1
errno = 2
Error: No such file or directory
2''??ة?X' ist nicht möglich: Datei oder Verzeichnis nicht gefunden
$ ls -i
2532 ??[?????ة?X
$ find -inum 2532 -delete
find: ‘./??[??$ mount | grep " / "
/dev/sdc3 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
$ uname -a
Linux hera 4.13.0-16-generic #19-Ubuntu SMP Wed Oct 11 18:35:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 17.10 \n \l
2??ة?X’ kann nicht gelöscht werden.: Datei oder Verzeichnis nicht gefunden
Nenhuma indicação de que houve um problema. ("sauber" = limpo)
Eu até tentei escrever meu próprio programa de exclusão que falhou, assim como o comando rm
:
%pre%
Eu encontrei perguntas semelhantes e as respostas não funcionam para mim:
Outras informações:
%pre%
Existe uma maneira de se livrar desse arquivo?