45 votes

Comment supprimer un fichier dont le nom est bizarre ?

J'ai écrit un programme qui utilise la fonction POSIX de mise en correspondance de la mémoire ( mmap )

Le programme prend un fichier ( a.dat ) et le met en correspondance avec la mémoire pour la lecture/écriture.

En raison d'erreurs dans le programme, chaque fois que je lance le programme, un fichier avec des noms bizarres (par exemple, ?d?P?^z??d?P?^z? ) est est créée. L'erreur est résolue mais je ne peux pas supprimer les fichiers.

Je ne parviens pas à le supprimer, que ce soit en utilisant la ligne de commande ou en sélectionnant/supprimant à partir du gestionnaire de fenêtres.

Comment dois-je procéder pour la supprimer ? J'utilise Ubuntu 11.04.

60voto

Harry Points 21

rm -i -- * vous invite à supprimer chaque fichier. Vous pouvez et devez remplacer "*" par une correspondance plus étroite s'il y a beaucoup de fichiers. L'option -- arrête le traitement des options, de sorte qu'un fichier nommé -d sera supprimée par rm avec succès.

J'ai déjà utilisé cette méthode par le passé et elle fonctionne jusqu'à ce que vous rencontriez un ou deux caractères spéciaux qu'elle n'aime pas.

21voto

akauppi Points 3125

Vous pouvez utiliser ls -li pour afficher tous les fichiers en fonction de leur inode. Exécutez ensuite cette commande pour supprimer le fichier :

find . -inum ${INODE_NUM} -delete

J'ai ajouté -maxdepth 1 à ma trouvaille, par sécurité :

find . -maxdepth 1 -inum ${INODE_NUM} -delete

0voto

kisna Points 101

Une simple recherche/confirmation de fichiers par motif et rm ne pourrait-elle pas fonctionner ?

find . -maxdepth 1 -name "*P*d*P*z" -exec ls -a {} \; 
find . -maxdepth 1 -name "*P*d*P*z" -exec rm {} \;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X