惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky
博客园 - 聂微东
V
Visual Studio Blog
I
InfoQ
罗磊的独立博客
Security Latest
Security Latest
G
Google Developers Blog
博客园_首页
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
PCI Perspectives
PCI Perspectives
Forbes - Security
Forbes - Security
P
Proofpoint News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Commits to openclaw:main
Recent Commits to openclaw:main
The Cloudflare Blog
AWS News Blog
AWS News Blog
Latest news
Latest news
T
Tailwind CSS Blog
P
Palo Alto Networks Blog
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
WordPress大学
WordPress大学
Recorded Future
Recorded Future
A
Arctic Wolf
V
Vulnerabilities – Threatpost
Security Archives - TechRepublic
Security Archives - TechRepublic
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
月光博客
月光博客
有赞技术团队
有赞技术团队
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
美团技术团队
Hacker News - Newest:
Hacker News - Newest: "LLM"
Jina AI
Jina AI
N
News and Events Feed by Topic
Attack and Defense Labs
Attack and Defense Labs

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Microsoft взялся за ls, cp и rm или зачем Windows понадобились команды Linux
Самый зубастый автор · 2026-06-07 · via Все публикации подряд на Хабре

Простой

5 мин

2.4K

Разработчики и системные администраторы, которые имеют дело и с Windows, и с Linux, давно привыкли к одной проблеме: скрипты и команды нормально функционируют на сервере, но не пойдут без адаптации на локальном компьютере. Для запуска привычных утилит вроде ls, cp, grep или find обычно приходилось использовать WSL, Git Bash или другие слои совместимости. 

Microsoft решила упростить этот сценарий и выпустила пакет Coreutils для Windows, добавляющий популярные Unix-команды прямо в их систему. Решение ориентировано прежде всего на разработчиков, DevOps-инженеров и администраторов, которым приходится регулярно переключаться между разными платформами. Давайте разберемся, что это за пакет и как он устроен.

Как это устроено технически

В Microsoft взяли за основу проект uutils/coreutils — кроссплатформенную реализацию GNU Coreutils на языке Rust. Вместо коллекции десятков отдельных исполняемых файлов — один многофункциональный бинарник coreutils.exe.

При установке через winget в системе создаются жесткие ссылки (NTFS hard links) на ls.exe, cp.exe, rm.exe и другие утилиты. Все они ведут напрямую на coreutils.exe. Когда вызывается конкретная команда, запускается общий бинарник, который по аргументу argv[0] определяет, какую именно функцию нужно выполнить. Такой подход с множественными вызовами значительно упрощает обновления и уменьшает размер дистрибутива.

Пакет включает не только базовый набор uutils/coreutils, но и компоненты uutils/findutils, — такие как find, xargs, — а также GNU-совместимый grep. При этом разработчики Microsoft сохранили оригинальное поведение некоторых штатных команд Windows. Например, sort и find продолжают поддерживать синтаксис /O и другие DOS-ключами, чтобы не ломались существующие CMD-скрипты.

Такая гибкость достигается за счет особой логики внутри бинарника, которая проверяет контекст вызова и запущенную оболочку. В рамках одного сеанса можно использовать как Unix-флаги (--help, -la), так и традиционные параметры — все работают без конфликтов.

Установка предельно простая: 

winget install Microsoft.Coreutils

Исполняемые файлы попадают в папку Program Files, а пути к жестким ссылкам — в переменную окружения PATH. Команды становятся доступны в CMD, PowerShell 7.4+ и Windows Terminal. 

Важно учитывать порядок записей в PATH: если штатная команда Windows стоит в перечне раньше, именно она перехватит вызов. Для корректной работы PowerShell рекомендуется настроить алиасы или явно указывать полный путь к исполняемому файлу. 

Каждая утилита поддерживает стандартный флаг --help с подробным описанием опций, что соответствует поведению в Linux. Стоит учитывать, что проект пока находится в статусе preview, поэтому в некоторых редких сценариях могут проявляться различия в обработке путей или кодировок.

30+ бесплатных курсов на IT‑темы в Академии Selectel

Для начинающих и опытных специалистов.

Изучить →

Почему именно сейчас

Создание ПО все заметнее смещается в кроссплатформенные технологии: контейнеры, CI/CD, облачные сервисы. При этом многие скрипты и пайплайны изначально пишутся под Linux, тогда как сами разработчики предпочитают Windows-машины с привычными инструментами. 

Раньше приходилось либо адаптировать код под PowerShell, либо разворачивать WSL с неизбежными накладными расходами на ресурсы — память и файловую систему. Теперь же нативные утилиты на Rust позволяют запускать знакомые конструкции ls -la | grep или cp -r почти без изменений.

Источник

Источник.

Rust в качестве основы дает сразу несколько преимуществ. Во‑первых, безопасная работа с памятью обеспечивается по умолчанию, что снижает риски уязвимостей по сравнению с классическими C‑реализациями. Во‑вторых, один и тот же код хорошо компилируется под Windows, Linux и macOS. 

В Microsoft не стали писать все с нуля, а взяли зрелый open-source проект uutils, который уже используется в некоторых дистрибутивах. Такое решение позволило разработчикам сосредоточиться на аспектах, специфичных для Windows: интеграции с файловой системой NTFS, корректного распознавания длинных путей, поддержке кодировки UTF-16 и списками контроля доступа ACL.

Отдельный момент — совместимость с существующими скриптами. Многие корпоративные окружения накопили огромный объем bat- и cmd-файлов. Полная подмена привычных инструментов неизбежно привела бы к хаосу, поэтому разработчики пакета предусмотрели параллельное сосуществование обеих версий. 

Утилиты Unix логично задействовать в новых сценариях, где критично одинаковое поведение команд на локальных машинах и серверах. Подобная гибкость особенно полезна для DevOps-инженеров, которые работают с гибридной инфраструктурой.

Реакция сообщества и возможные подводные камни

IT‑сообщество в целом положительно отреагировало на появление пакета. Многие отметили удобство при написании кроссплатформенных скриптов: теперь можно делиться однофайловыми решениями без постоянных оговорок про «на Windows нужно переписать».  Нововведение особенно оценить должны те, кто работает с Git, Docker и облачными SDK, где командная строка задействуется максимально интенсивно.

Источник

Источник.

Однако остаются и непреодолимые технические ограничения.

Поскольку Windows использует списки контроля доступа ACL вместо классических прав POSIX (permission bits), в пакет ожидаемо не вошли утилиты chmod, chown, chgrp и chcon. Их логику невозможно адекватно воспроизвести на файловой системе NTFS без внедрения дополнительных метаданных. 

Аналогичная ситуация и с POSIX‑сигналами: из‑за отсутствия их полноценной поддержки из набора исключены kill и timeout. По схожим архитектурным причинам пришлось отложить реализацию таких специфичных для Unix инструментов, как mkfifo, mknod и chroot.

Ещё один нюанс связан с особенностями файловых систем. NTFS обрабатывает символические ссылки через точки повторной обработки (reparse points). Linux опирается на индексные дескрипторы (inode). Из‑за такого фундаментального отличия простой вызов ln -s срабатывает, но поведение при рекурсивном копировании или удалении — например, cp -r или rm -rf, — оказывается неожиданным, если приходится обрабатывать вложенные ссылки. 

Кроме того, разница в обозначении концов строк — CR, LF в Windows и LF в Linux — иногда влияет на работу текстовых утилит вроде cat, grep или sort. Чтобы избежать непредвиденных результатов при чтении файлов из разных источников, разработчики пакета рекомендуют явно указывать флаг --binary или учитывать кодировку.

Производительность пакета в целом выше, чем у слоев совместимости, поскольку он работает напрямую с WinAPI. Однако в сценариях с очень большим количеством файлов (особенно, когда счет идет на миллионы) могут проявляться особенности NTFS на фоне ext4. 

Сообщество уже начало тестировать пакет в реальных задачах, и первые отчеты показывают стабильность для большинства повседневных операций. Репозиторий открыт, так что можно вносить правки или предлагать новые функции.

Что в итоге

Появление Coreutils — заметный шаг в сторону уменьшения трения между платформами. В будущем стоит ожидать расширения списка поддерживаемых команд и более тонкой настройки их поведения под специфику Windows. 

Уже сейчас пакет закрывает потребности в основных операциях с файлами и текстом. Доступны ls, cp, mv, rm, cat, grep, find, xargs и другие популярные инструменты. Однако в сложных сценариях, когда требуется вся функциональность POSIX, WSL по‑прежнему остается безальтернативным вариантом.