Certaines autres méthodes incluent :
échapper les caractères spéciaux :
[~]$rm \"la\*
utilisez la commande find et recherchez uniquement le répertoire courant. La commande find peut rechercher des numéros d'inode et possède un -delete
pratique commutateur :
[~]$ls -i 7404301 "la* [~]$find . -maxdepth 1 -type f -inum 7404301 ./"la* [~]$find . -maxdepth 1 -type f -inum 7404301 -delete [~]$ls -i [~]$
Peut-être qu'il me manque quelque chose, mais...
rm '"la*'
Quoi qu'il en soit, les noms de fichiers n'ont pas d'inodes, contrairement aux fichiers. Essayer de supprimer un fichier sans supprimer tous les noms de fichiers qui y pointent endommagera votre système de fichiers.
Si vous vraiment voulez le faire - et votre cas d'utilisation ne semble pas vraiment nécessaire, vous pouvez essayer des outils de débogage du système de fichiers. Si vous êtes prêt à tout perdre, bien sûr.
Par exemple, pour ext2/3/4 le debugfs
La commande a une option "kill_file" qui semble prendre un inode. Comme mentionné dans d'autres réponses, cela sera endommager votre système de fichiers, car il y aura des entrées de répertoire pointant vers un fichier inexistant. Exécution de fsck
par la suite peut être en mesure de réparer cela. Il est peu probable que vous puissiez le faire sur un système de fichiers monté.
Mais je recommanderais fortement vous utilisez simplement les échappements / guillemets appropriés et supprimez ces fichiers avec le rm
normal commande comme mentionné dans une réponse précédente - et utilisez rm -i
pour plus de sécurité lorsque vous traitez des noms de fichiers contenant des caractères globaux comme *