J'ai écrit un programme qui utilise la fonction de mappage de mémoire POSIX ( mmap
)
Le programme prend un fichier ( a.dat
) et le mappe en mémoire pour lecture / écriture.
En raison d'erreurs dans le programme, chaque fois que j'exécute le programme, un fichier avec des noms étranges (par exemple, ?d?P?^z??d?P?^z?
) est créé. L'erreur est résolue mais je ne parviens pas à supprimer les fichiers.
Je ne peux pas le supprimer en utilisant la ligne de commande ou en sélectionnant / supprimant du gestionnaire de fenêtres.
Alors, comment dois-je le supprimer? J'utilise Ubuntu 11.04.
rm '?d?P?^z??d?P?^z?'
). Avez-vous essayé cela?rm *
à l'intérieur du dossier.Réponses:
rm -i -- *
vous invitera à supprimer chaque fichier. Vous pouvez et devez remplacer «*» par une correspondance plus étroite s'il y a beaucoup de fichiers. Les--
options de traitement s'arrêtent, donc un fichier nommé-d
sera supprimé parrm
avec succès.Je l'ai utilisé dans le passé et cela fonctionne jusqu'à ce que vous frappiez un caractère spécial ou 2 qu'il n'aime pas.
la source
rm
, vous pouvez fairerm -i -- *
Le--
indique à certaines versions de rm qu'il n'y a plus de commutateurs de ligne de commande après le--
et pour traiter les autres arguments comme des noms de fichiers.--
dans larm
commande.vous pouvez utiliser
ls -li
pour afficher tous les fichiers par leur inode. Exécutez ensuite cette commande pour supprimer le fichier:J'ai ajouté
-maxdepth 1
à ma trouvaille juste pour être en sécurité:la source
ls -i
c'est assez bon.ls
ne supprime pas les fichiers. OP le veut.ls -li
pour afficher tous les fichiers par leur inode». Je souligne que celals -i
suffit pour obtenir une liste des noms de fichiers et leurs numéros d'inode correspondants. (Mais bien sûr, vous avez besoinls -ia
si vous souhaitez inclure des fichiers dot.)-delete
option àfind
, afin de minimiser l'utilisation d'un mauvais nom de fichier.