Je peux juste pour vous garantir que le fichier n'avoir un nom. Il se trouve que c’est un nom qui contient des caractères non imprimables.
Si cela rmn'a pas fonctionné, utiliser le résultat de findl' -inumoption avec comme argument rmne devrait pas vous aider. il va juste passer le même argument à rm, avec le même problème.
Le fichier est le seul dans ce répertoire, non?
La première chose que j'essaierais est d' cdentrer dans le répertoire, puis de taper rm ./puis d'appuyer sur la touche Tab. Cela devrait développer l'argument jusqu'au nom réel du fichier et le précédent ./devrait empêcher rmd'interpréter l'argument comme autre chose qu'un nom de fichier.
Une autre solution consiste à cdutiliser le répertoire parent, puis à utiliser rm -r(ou, si nécessaire rm -rf) sur le répertoire. Cela devrait supprimer le répertoire et tout son contenu, quel que soit son nom. Vous pouvez ensuite utiliser mkdirpour recréer le répertoire (et peut-être chmodpour restaurer ses autorisations).
MODIFIER :
En regardant à ls -lbnouveau votre sortie, je pense que le nom du fichier commence par un DELcaractère ASCII (ce qui est mauvais, pas fatal) et contient un ou plusieurs caractères de nouvelle ligne (ce qui est vraiment mauvais). Autant que je sache, la rmcommande ne peut pas interpréter une nouvelle ligne comme faisant partie d'un nom de fichier.
Mais l' unlink()appel système peut. Voici un script Perl que j’ai concocté et qui va parcourir les fichiers du répertoire courant et vous demander pour chacun d’eux si vous souhaitez le supprimer. Il n'utilise pas de commande externe comme rmpour supprimer les fichiers. Il devrait donc être capable de gérer tous les caractères amusants pris en charge par le système de fichiers (tout ce qui est autre que ASCII NULet /).
Faire rm -rou rm -rfsur le répertoire contenant devrait toujours fonctionner, mais vous pouvez essayer ceci si vous voulez simplement supprimer un seul fichier.
#!/usr/bin/perl
use strict;
use warnings;
opendir my $DIR, '.' or die ".: $!\n";
my @files = sort grep { -f } readdir $DIR;
closedir $DIR;
foreach my $file (@files) {
my $pfile = printable($file);
print "Remove $pfile? ";
my $answer = scalar <STDIN>;
if ($answer =~ /^[Yy]/) {
print "Removing $pfile\n";
unlink $file or warn "Unable to remove $pfile: $!\n";
}
}
sub printable {
my($s) = @_;
$s =~ s/[^ -~]/?/g;
return $s;
}
(Une autre solution, s'il y a d'autres fichiers dans le répertoire que vous souhaitez conserver, consiste à déplacer tous les autres fichiers dans un répertoire temporaire, puis à supprimer et à recréer le répertoire, puis à déplacer les autres fichiers vers l'arrière.)
(Oh, et quoi que vous ayez fait pour créer ce fichier, essayez de ne pas le refaire!)
\177est leDELcaractère ASCII .