Connexion Premium

Windows 11 récupère les coreutils, findutils et grep

Grep party

Windows 11 récupère les coreutils, findutils et grep

Illustration : Flock

Mardi soir avait lieu la conférence d’ouverture de la BUILD, la grand-messe annuelle de Microsoft pour les développeurs. Entre autres annonces liées inévitablement à l’IA et aux agents, l’entreprise a mis à disposition des outils que personne n’attendait vraiment : les coreutils pour Windows.

Les coreutils, pour GNU Core Utilities, sont un ensemble logiciel fournissant des commandes standardisées et basées sur Unix pour le shell, autrement dit pour la ligne de commande. Ils contiennent des instructions connues comme chmod pour modifier les permissions d’un fichier, mkdir pour créer un répertoire, rm pour supprimer des fichiers ou encore des outils de manipulation du texte comme printf.

Au cours des derniers mois, les coreutils sont revenus sur le devant de la scène via le projet uutils, une réécriture en Rust des outils. Nous avions d’ailleurs interrogé Sylvestre Ledru, directeur de l’ingénierie chez Mozilla et lead sur le projet, sur lequel les projecteurs s’étaient subitement braqués, Canonical ayant intégré uutils dans Ubuntu 25.10.

Microsoft recompile pour Windows

C’est précisément ce projet que Microsoft a utilisé pour Windows, en compilant uutils pour son propre système. Dans la foulée, Microsoft a d’ailleurs débordé, ajoutant findutils et grep à l’ensemble. Ce dernier est particulièrement connu et utilisé, fournissant un moyen simple et puissant de retrouver du texte. C’est d’ailleurs lui que Microsoft met en avant dans sa courte vidéo de présentation.

Interrogé sur le sujet, Sylvestre Ledru se montre enthousiaste : « Je suis très heureux de voir Microsoft utiliser et mettre en avant uutils, annoncer l’utilisation de nos outils, ainsi que leur contribution de la réécriture de grep en Rust au projet. C’est une belle reconnaissance du travail de la communauté. Leur implication va notamment nous aider à améliorer encore la portabilité sur Windows ».

Les coreutils pour Windows peuvent être récupérés depuis GitHub ou s’installer via la commande WinGet suivante :

winget install Microsoft.Coreutils

Microsoft prévient que certains outils peuvent entrer en conflit avec ceux déjà présentes dans CMD et PowerShell, un tableau est fourni pour lister les problèmes. À noter que PowerShell doit être installé en version 7.4 minimum.

Les conflits potentiels identifiés selon Microsoft – capture d’écran

Commentaires (48)

votre avatar
Quand je lis ceci, j'ai juste envie de dire arrêtez de vous chatouiller le bout du nez et faites-vous des gros calins pour nous pondre une distro linux universelle. Terminé les dmg, rpm, exe, msi, deb, envoyez de la paillette aux devs avec une architecture unifiée.
Si vraiment vous tenez à la bataille des fonctionnalités et des chartes graphiques, chacun son environnement de bureau et on en parle plus.
Et pour ne pas perdre la main sur le terrain de la bataille judiciaire, vous pourrez toujours vous écharper sur le nom de l'OS :D
votre avatar
C'est aussi pertinant que de dire a MS, Apple, Google de faire un OS unique.
votre avatar
En quoi est-ce non pertinent ? Exagéré, certes, réaliste probablement pas, mais pertinent oui. Cette "distro linux universelle" elle existe d'ailleurs, ça s'appelle POSIX. Et ho miracle, cette spécification unifie des trucs comme mkdir, pwd et le shell CLI.

Microsoft a déjà à-peu-près compris que Powershell a le q entre trois chaises, s'ils pouvaint enfin acter que c'est un échec...
votre avatar
C'est pas aussi simple. Le binaire d'un tool compatible POSIX ne tourne pas universellement, son code oui. On a beau avoir des standards web, on a pas de browser universel pour autant.

La partie lié aux choix d'implémentation (les trous laissés par les standard) n'est pas neutre du tout.
votre avatar
Le binaire de Windows (XP SP3 par exemple) pour intel 64 bits est différent du binaire pour intel 32 bits... Ces deux trucs sont pourtant bien le "même" OS...
votre avatar
Tiens tu as dû mettre des guillemets pour une raison. Probablement parce qu'il ne s'agit pas du même OS justement :non:
votre avatar
Probablement parce qu'il ne s'agit pas du même OS justement
On parle bien ici du concept du bateau de Thésée ?

Oui effectivement c'est un OS différent, au même titre qu'une application grep pour une architecture X64 est différente d'une application grep pour une architecture ARM malgré qu'elles sont toutes deux compilées depuis la même source. Stricto sensu une application compilée avec les infos de debug et l'autre pour la prod sont différentes, pourtant le développeur développe la première et commercialise la seconde, en se basant exclusivement sur une batterie de tests pour vérifier que le comportement des deux instances est identique.

Et c'est bien ce "le comportement est identique" que je simplifie en "même".

J'aime bien quand on comprend l'usage des guillemets d'ironie.
votre avatar
Je vais pas rentrer dans ce tunnel alors que le simple fait de dire que la norme POSIX ne permet pas de garantir que l'OS soit le même (à un degrés très loin du problème d'identité du bateau de Thésée, mais déjà plutôt comme le fait qu'un voilier et un paquebot sont d'office des bateaux différents bien qu'ils partagent déjà un certain nombre de standards) devrait suffir à ne pas y entrer de base...
votre avatar
Mais je n'ai jamais tenté de dire que deux OS qui respectent la norme POSIX sont les mêmes, pas plus que de dire que le bateau de Thésée et le Titanic sont les mêmes sous le simple prétexte que "babord" et "tribord" représentent la même direction sur les deux, et encore moins que la rencontre avec un iceberg pourrait impliquer la nécessité urgente de remplacer une planche ou deux à l'avant de la coque.

Je dis juste les choses suivantes. Attention c'est long parce que c'est parti dans tous les sens...

Point 1. Pour en revenir au sujet du débat, il est pertinent de demander à plusieurs OS différents de partager un socle commun, et que par ailleurs un tel socle commun, tout fragile qu'il soit, existe et s'appelle POSIX. Il n'est donc pas nécessaire d'inventer un quinzième standard.

Point 2. Tout comme pour le bateau de Thésée, il est difficile de tracer une ligne claire et précise sur le fait que deux logiciels sont "les mêmes" ou "différents". Ceci n'a plus rien à voir avec POSIX en tant que norme mais avec la remarque que "le binaire d'un tool [POSIX] ne tourne pas universellement". Oui, la norme POSIX n'impose pas une architecture matérielle ni les conventions d'appel qui en découlent, c'est évident., elle impose juste que "grep" utilise la même syntaxe de regexp et est capable de sélectionner des fichiers texte dans le répertoire courant en utilisant le même pattern glob.

Point 3. Microsoft s'est délibérement écarté des normes POSIX mais poussé par sa base d'utilisateurs de profil développeur, y revient petit à petit.
votre avatar
POSIX n'est pas du tout une distro Linux universelle. POSIX, c'est un standard d'interface, c'est tout.

Et le support POSIX dans Windows existe depuis longtemps :
en.wikipedia.org Wikipedia

On avait jusque là du POSIX.1, les coreutils apportent un peu de POSIX.2.
votre avatar
POSIX n'est pas du tout une distro Linux universelle.
D'où l'utilisation de guillemets...
Trop subtil comme indice, sans doute.
Et le support POSIX dans Windows existe depuis longtemps
Avec le lien vers l'article qui dit que le support POSIX dans Windows a été supprimé depuis Windows 8. Merci.
votre avatar
POSIX n'est pas une distro Linux universelle ; POSIX n'est pas une distro Linux ; POSIX n'est pas Linux.
Ce n'est qu'une description d'interface, pas une implémentation, pas une distribution, pas un OS, ça ne se mêle pas de packaging (la question de départ de ce fil).
La subtilité était un peu épaisse.

Eh oui, le sous-système POSIX du noyau NT a été enlevé lorsqu'il a été remplacé par WSL. Ça n'enlève rien au fait que Windows est compatible POSIX.1 depuis 33 ans, donc si POSIX est une distro Linux universelle, Windows en fait partie depuis 33 ans. Fichtre.
votre avatar
La subtilité était un peu épaisse
Raté... Si tu relis attentivement mon post initial, tu constateras que je décris POSIX comme une spécification et non comme une distribution.
votre avatar
je décris POSIX comme une spécification et non comme une distribution.
Tout le monde finit par être d'accord :-D
votre avatar
Bon déjà on peut commencer par se détendre un peu, évidemment qu'il y a de la fantaisie et du second degré dans mon message.
Mais je le fais sur la base d'un constat personnel qui n'est pas dénué de sens.

Le positionnement de l'OS n'a plus rien à voir en 30 ans tout du moins dans le grand public. Longtemps le point central de l'expérience "multimédia", c'est devenu principalement qu'un lanceur de navigateur et une porte d'entrée/sortie via des supports de stockage, de l'impression et de la numérisation.

On est pas mal ici à avoir installé des Zorin OS et autres dans nos familles avec les restrictions de Windows 11, dans mon cas perso les personnes concernées n'ont vu aucun changement en termes d’expérience utilisateur.

Et c'est normal car le PC est essentiellement allumé pour ouvrir le navigateur et imprimer quelques factures. Je peux citer aussi la suite bureautique installée local devenue dispensable avec les suites en ligne.
Mêmes les enjeux de sécurité ont changé, fini le PC vérolé à nettoyer tous les X mois (on citait encore récemment sur un autre fil l'époque des toolbars), maintenant c'est du conseil pour limiter le phishing, et le gros de la prévention est dédié à l'usage téléphone.

En parallèle, on a Valve qui prouve petit à petit qu'une base GNU/Linux peut prendre une position sérieuse dans le jeu vidéo, donc finalement qui peut tout faire.
Même en utilisation pro, on a des propositions sérieuses : QCAD pour le dessin vectoriel, Reaper en station audio, DaVinci Resolve pour la vidéo, Blender pour l'animation.

Chez Apple, y a plus rien de croustillant depuis au moins 10-15 ans sur MacOS, du cosmétique, des transfuges d'iOS et une baisse constante de la qualité du produit fini.
Il lui reste son optimisation liée à la maitrise matérielle mais on sait très bien qu'une distribution linux officiellement supportée pourrait faire le taf quand on voit le projet Asahi Linux.
Et j'ajoute un détail symbolique, l'extinction progressive de la suite iLife vers 2014-2015.
Et ils ont même fait l'exploit de faire fuir les monteurs pro avec Final Cut X, qui se sont barrés ensuite chez Adobe et DaVinci.

La bataille des OS desktop pour le grand public, c'est terminé. Reste la carte de l'IA en dernier recours, résultat Microsoft change de braquet pour seulement commencer à offrir le minimum de ce qu'on attend d'un OS. Toute cette énergie, ce temps et cet argent pour en arriver là....


Tu parles de pertinence dans ton message, je m'interroge justement sur cet aspect concernant l'offre actuelle sur l'OS desktop. Je trouve que ça n'a plus de sens sur le plan stratégie commerciale mais on continue à subir les contraintes inhérentes.

Bref mon point de vue est très certainement perfectible mais pas immuable, c'est tout l'intérêt d'ouvrir le débat.
votre avatar
Jamais obsolète : https://xkcd.com/927/
votre avatar
Bien entendu, j'y ai pensé aussi en rédigeant mon post initial :D
votre avatar
Vincent ! :love:
votre avatar
:smack:
votre avatar
:incline::love:
votre avatar
Bon retour !
votre avatar
Il peut y avoir conflit mais du coup, ça se passe comment ? Quelle version est utilisée ?
votre avatar
C'est copilot qui tire à pile ou face (désolé, je suis déjà loin…)
votre avatar
Il manquait la légende du tableau:
Legend: ✅ ships and works · ⚠️ ships but conflicts with a built-in · 🛑 not shipped

Ici, après installation, coreutils est au tout début du Path (ce qui donne priorité à ses commandes), mais dans PowerShell, il y a des alias qui passent avant les commandes. Get-Alias donne la liste de tous les alias. On peut les contourner en rajoutant .exe, comme ceci:
ls.exe
votre avatar
Petit à petit, Windows devient un Unix comme un autre.
votre avatar
En moins performant et plus lourd :D

Surtout que beaucoup de distrib linux deviennent utilisable pour du gaming. Un des derniers intérêts de Windows s'effondre.
votre avatar
+1
Bientôt on devrat dire GNU/Windows 😜
votre avatar
Ça veut dire qu'on peut utiliser shred sur Windows ?
Avec la même fiabilité (les fichiers sont vraiment irrécupérables) que sur Linux ? :keskidit:
votre avatar
Si le fonctionnement reste le même, la seule condition ça serait que le système de fichier utilise les mêmes blocs sur le disque en cas de réécriture. Donc tant que NTFS (et son implémentation) le garantissent...

En tout cas shred ne fait qu'utiliser les fonctions d'écriture standard et ne se préoccupe pas du fonctionnement sous-jacent : github.com GitHub
votre avatar
Et le awk ?
votre avatar
En allant voir dans mon UniGet GUI, j'ai vu qu'il y a du coup 2 distributions de CoreUtils pour Windows : la version MS qui est le sujet de cette brève accessible à travers WinGet, et une version proposée par GnuWin32, disponible en tant que package communautaire sur Chocolatey.
Est-ce que l'une de ces versions serait préférable ?
votre avatar
Un build d'uutils (c'est peut-être ça dans chocolatey? edit: dispo avec winget install uutils.coreutils) sera bien plus complet; le README de la version MS liste beaucoup de commandes non portées car non pertinentes (ça se discute, ils en enlèvent 27) ou en conflit (7).

Par contre, le package de MS finasse en fournissant un sort et un find qui peuvent invoquer la version DOS ou la version uutils, suivant les arguments fournis.
votre avatar
Ça fait bizarre de lire ce genre de news, je ne peux pas m'empêcher de penser que le paquebot Windows prend l'eau.

A noter qu'au début des années 2000, Windows faisait 50% du revenu de MS, aujd à peine 10%. Toutefois son revenu absolu a quand même augmenté, 10Mds en 2000 à ~20 en 2025. Après c'est complexe à comparer parce que Windows était surtout stratégique pour tout le verrouillage de l'écosystème notamment la suite office ce qui est bien moins le cas aujourd'hui.
votre avatar
Tu t'en rends compte maintenant ? :mdr2:
Mieux vaut tard que jamais, me diras-tu, mais Mark Shuttleworth a tout de même fermé le bug #1 en 2013... quand M$ a loupé le virage du mobile, c'était bien le "début de la fin" !

Heureusement pour eux (surtout pour les employés), ils ont su se convertir en "usine à vendre du cloud" qui est maintenant leur premier métier. Windows en lui-même est de plus en plus totalement secondaire... et même attaqué par Valve sur un des derniers segments historiques : le jeu vidéo !
votre avatar
C'est pas qu'une pensée, Windows prend l'eau.
Un OS ne rapporte plus d'argent, depuis les smartphones.
Il faut aller chercher les sous sur ce qu'ils font avec. Google et Apple gagnent de l'argent avec les commissions du Store, les devices et les services Cloud pour stocker les vidéos de 2Go qui débordent vite sur des appareils à stockage limité, non extensible ni transférable (tiens donc, la suppression des microSD serait intéressée ?!).

Microsoft le sait depuis un moment, ils ont quasiment rendu l'OS gratuit depuis Windows 10, ils ont tenté le virage du Microsoft Store mais les erreurs de lancement et l'image du "je cherche mon logiciel sur les internets, j'installe mon .EXE et je donne pas un kopek à Microsoft (voir à l'éditeur :cartonrouge:)" est bien trop ancrée dans nos habitudes, tout comme "je stocke mon fichier sur mon HDD 4To" (ou sur les Cloud "que je paye de toute façon pour mon smartphone")

Ce qui rapporte de l'argent aujourd'hui, c'est effectivement tout l'écosystème. Et là dessus, sur les entreprises (aka ceux qui ont de l'argent à donner à Microsoft), les stratégies autour de l'écosystème Office/Teams/Azure sont assez bien fichues. C'est forcément plus dur pour le reste quand il y a floppée de solutions gratuites pour le grand public et que le monde entier passe sur des modèles SaaS.

En tout cas, cette année Microsoft part en énorme opération séduction chez les power users, les coreutils et la suite de l'offensive ARM avec une vague de hardware orienté sur les usages "lourds". C'est plutôt une bonne chose, mais est-ce que ce sera suffisant pour stabiliser le bateau...
votre avatar
Heu alors absolument pas, windows est tout sauf gratuit, les licences de masse en entreprise coûtent toujours un bras et les licences oem sont vendues plus chères aux assembleurs qu'elles ne l'étaient dans le passé.
Je pense juste que le marché du PC est mature et que microsoft ne peut croitre qu'en captant d'autres marchés émergents comme le cloud mais je ne suis pas sûr pour autant que l'OS soit déficitaire.
votre avatar
Oui, mais entre gratuit et qui rapporte de l'argent, c'est différent.

Aujourd'hui tu changes pas d'OS tous les 2 ou 3 ans comme avant, tout comme le parc informatique a tendance à vieillir vu la maturité du hardware. Windows 10 est resté 6 ans, Windows 11 est déjà là depuis 5 ans et n'a pas l'air parti pour être remplacé l'an prochain.

En tant que particulier, mon Windows 10 était une "migration gratuite" depuis Windows 8 qui était déjà une upgrade gratuite depuis Windows 7. Mon PC actuel est de 2020 était livré sous Windows 10 et migré gratuitement sur 11, je ressens pas spécialement le besoin de le changer aujourd'hui sauf pour faire joujou avec les LLM.

Donc je pense vraiment que les revenus de licence ont fondus, pas parce que le prix a baissé, mais parce qu'il se vend beaucoup moins de licences.
votre avatar
AMHO tu oublies Windows Server les versions avec date de péremption sont supportées par les éditeurs de logiciels pour leurs produits
Le changement de version tant pour WS que pour le logiciel n'est pas gratuit (en général).
votre avatar
Ça va être un bordel monstre dans PowerShell.

En effet, tout d'abord PowerShell, manipule des objets, or les outils bash/shell travaillent sur des flux bruts (texte ou binaire), qui ne sont pas typés, ni structuré. On n'est donc pas vraiment sur des logiques similaires et compatibles.

De plus, comme prévient MS, ces outils vont entrer en conflit avec les alias classique de PowerShell. C'est un coup à flinguer des scripts qui fonctionnaient bien. Je ne sais pas comment ce problème de conflit est géré
votre avatar
Ça va être un bordel monstre dans PowerShell.
Si ça pouvait enfin sonner le glas de PowerShell...

L'idée derrière ce truc n'est pas foncièrement mauvaise, mais la réalisation est catastrophique. La verbosité à faire pâlir COBOL de jalousie, la difficulté à implémenter soi-même des commandes (je me rappelle l'époque où les cmdlets devaient absolument être écrits en Net Framework 3.5 alors que le framework 4 était déjà la norme...) et surtout le nommage des commandes qui rend l'autocomplete quasi impossible, bref un bourbier.

Et quand je dis "pas foncièrement mauvaise" pour parler des objets, c'est plutôt un euphémisme parce que c'est pas franchement bon non plus. Le fait que les commandes s'échangent du texte est tellement plus ouvert ("ouvert" et "Microsoft" dans la même phrase, ça s'appelle un oxymore) que des objets qui ont besoin d'un environnement .Net pour être exploités. Pas de moyen simple de faire communiquer deux processus sur des machines différentes, pas de moyen simple de passer par un fichier intermédiaire plutôt qu'un pipe, pas de moyen simple de faire un traitement par un LLM, et j'en passe.

Au point que même Microsoft s'était félicité qu'un de leurs outils de développement (je ne sais plus lequel, peut-être la version CLI de azure) utilisait "la syntaxe que vous aimez tous" à savoir une commande unique (comme "git" ou "docker") suivie d'une sous-commande, d'une sous-sous-commande et d'arguments. Ils présentaient ça comme une avancée majeure alors que c'est ce que tout le monde fait.
votre avatar
Je me demande si tu as vraiment déjà utilisé Powershell. On peut aimer ou pas (c'est pas la question), mais la moitié de ce que tu dis est juste complètement faux.

Nan parce que la communication entre des processus sur des hôtes différents est quand même assez simple à mettre en oeuvre. On peut même exécuter la même commande sur plusieurs hôtes différents de manière transparente.

Bien évidemment qu'on peut remplacer un pipe par un fichier. C'est même la base et c'est la même syntaxe que pour les shells "classiques".

Le seul aspect où je suis d'accord, c'est sur l'aspect verbeux. Mais personnellement, je ne trouve pas cela comme un soucis. Bien au contraire. On peut lire un script powershell même sans être un cador et sans connaitre toutes les commandes par coeur. C'est bien plus difficile quand on enchaine les cat, les awk, sort, tar etc. et qu'il faut connaitre sur le bout des doigts les différentes options (généralement sous forme raccourci) pour comprendre ce que fait un script.
votre avatar
J'ai quand-même du mal à comprendre comment ça marche...
la communication entre des processus sur des hôtes différents est quand même assez simple
Et donc l'objet est sérialisé et passe par un stream TCP ? Ou passe par DCOM ?
Bien évidemment qu'on peut remplacer un pipe par un fichier
Et donc l'objet est sérialisé dans le fichier ? Comment

Commande-1 | Commande-2

se traduit-il si je fais à la place

Commande-1 > fichier
Commande-2 < fichier

Notamment, comment l'objet construit par Commande-1 est-il passé à Commande-2 ?
votre avatar
Ils devraient choisir une distrib Linux ou FreeBSD et faire leur nouveau Windows "définitif" à partir de ça.
Apple ne peut que s'en féliciter je crois.
Vu de loin, car mon dernier Windows était XP, j'ai l'impression d'un OS complètement à la ramasse et bordélique au possible.
A un moment il faut repartir de zéro.
votre avatar
Ils ont commencé:
github.com GitHub
https://m.slashdot.org/story/454939

Basé sur du fedora et pour du serveur que pour le moment...
votre avatar
Vu de très loin oui,
Windows n'a plus rien de XP.

Ayant le même genre de vue sur Linux que toi sur Windows, c'est Linux pour lequel j'ai l'impression d'un OS inutilement compliqué techniquement et en pratique. (là ou Windows est user-friendly jusqu'aux options)
Évidemment, je sais que j'ai tord.
votre avatar
Oui je comprends.
Note que je parlais sous le capot, techniquement quoi. Linux est simplissime en comparaisons.
Mais pour les interface user c'est sur que c'est aussi grandement une question d’habitudes.
votre avatar
Zut, y'a pas dig dans le lot :cartonrouge: (je sais que ça fait pas partie de coreutils :pastaper:)

Combien de fois j'ai fait un dig domain.com @ns.domain.net dans CMD et râlé parce que ça marchait pas :D

Par contre ajouter grep, quel bonheur :iloveyou:
votre avatar
Inclu dans Bind 9. Attention, le portage vers Windows n'est plus assuré pour les nouvelles versions de Bind9 .