Une solution quelque peu dangereuse est la suivante, à partir de la ligne de commande :
find . -type f ! -regex '.*/[ -.0-~]*' -exec rm {} +
Remplacez le seul .
par le nom du répertoire racine si vous n'avez pas changé de répertoire pertinent au préalable. Pour plus de sécurité, essayez d'abord la commande plus courte suivante :
find . -type f ! -regex '.*/[ -.0-~]*'
et assurez-vous qu'elle n'identifie que les fichiers que vous souhaitez supprimer. L'expression régulière (regexp ou regex) ici correspondra à tout chemin d'accès se terminant par un slash suivi de toute combinaison de caractères ASCII imprimables, à l'exception du caractère /
, les espaces étant les premiers et ~
les derniers, tandis que .
et 0
entourent /
dans la séquence ASCII.
Une mise en garde parmi tant d'autres : je ne sais pas si votre localisation actuelle pourrait modifier la séquence de collation des caractères et donc peut-être changer la signification de l'expression régulière. Je ne crois pas que cela soit le cas, mais si c'est le cas, l'exécution des commandes suivantes :
LC_COLLATE=C find …
devrait éliminer le danger.
Encore une autre mise en garde : assurez-vous d'avoir une sauvegarde avant d'essayer ceci. Je ne prendrai pas la responsabilité de toute perte de données si vous vous trompez. La ligne de commande est un excellent outil pour se tirer une balle dans le pied ! Parfois, un simple espace mal placé peut être une catastrophe. (Dans ce cas, par exemple, le fait de manquer l'espace unique après le crochet ouvrant est fatal.)
0 votes
Avez-vous essayé de mettre le paramètre entre guillemets:
find -name '*ü*' -print
?0 votes
Le finder et les dossiers intelligents devraient vous permettre de sélectionner tous les fichiers dans un sous-dossier ou un volume et de les mettre à la corbeille de manière graphique avec une grande facilité. Y a-t-il une raison pour laquelle vous devez utiliser le terminal pour effectuer cette opération? (je suppose que si la liste des caractères devient plus proche de 10 que de 4 - ce serait une raison valable maintenant que j'y pense)
1 votes
@patrix, oui j'ai essayé d'utiliser des guillemets - cela ne correspond pas non plus à aucun fichier ou dossier. Utiliser le Finder (@bmike) ne correspond pas non plus à aucun fichier ou dossier. Je pense que c'est dû au fait que je recherche des caractères spéciaux, car lorsque je recherche des caractères normaux, des fichiers/dossiers sont trouvés dans les deux cas.