# ls.cmd — Аналог Unix-команды `ls` для Windows CMD
`ls.cmd` — это мощный и гибкий скрипт для Windows Command Prompt (cmd), который эмулирует поведение Unix-команды `ls`. Он позволяет отображать содержимое директорий, включая файлы и папки, с различными опциями, такими как рекурсивный поиск, вывод полных путей, фильтрация по типам файлов и отображение содержимого файлов, аналогично команде `type`. Скрипт разработан с учётом поддержки UTF-8 для корректного отображения имён файлов на русском и других языках.
## Возможности
- **Отображение содержимого директории**: Показывает файлы в текущей папке с полными путями по умолчанию.
- **Рекурсивный поиск**: Поддерживает отображение файлов и папок в подпапках с опцией `/s`.
- **Полные пути**: Выводит полные пути к файлам рекурсивно с опцией `/d`.
- **Вывод содержимого файлов**: Показывает содержимое файлов, как команда `type`, с опцией `/t`.
- **Фильтрация**: Позволяет показывать только файлы (`/f`) или использовать маску (например, `*.exe`).
- **Подробный режим**: Отображает дату, время и размер файлов/папок с опцией `/l`.
- **Размер папок**: Показывает размер файлов и папок с опцией `/v` (использует PowerShell для папок).
- **Исключение расширений**: Позволяет исключать файлы по расширениям с помощью `/x`.
- **Исключение директорий**: Полностью исключает папки и их содержимое с помощью `/xd`.
- **Дерево каталогов**: Показывает структуру папок в виде дерева с помощью `/tree`.
- **Поддержка UTF-8**: Корректно отображает имена файлов на русском и других языках.
## Установка
1. **Скачайте скрипт**:
- Загрузите файл `ls.cmd` из репозитория:
https://github.com/dictovod/ls/blob/main/ls.cmd
- Или используйте команду для скачивания:
```bash
curl -o ls.cmd https://raw.githubusercontent.com/dictovod/ls/main/ls.cmd
```
2. **Разместите скрипт**:
```cmd
copy ls.cmd C:\WindowsТеперь команда ls доступна из любой директории.
-
Проверьте права доступа: Убедитесь, что у вас есть права на запись в
C:\Windows. -
Требования:
- Windows 7 или новее.
- PowerShell (для опции
/v). - Поддержка UTF‑8 (
chcp 65001включён в скрипте).
ls [опции] [маска]/s— Рекурсивный список./d— Полные пути ко всем файлам рекурсивно./f— Только файлы./l— Подробный режим./v— Размер файлов и папок./t— Вывод содержимого файлов./x— Исключить расширения (например:/x ".log,.tmp")./xd— Исключить директории по имени (например:/xd "bin,obj")./tree— Вывод дерева каталогов./hили/?— Справка.маска— Фильтр файлов (*.exe,*.txt).
Без параметров ls выводит полные пути к файлам в текущей директории.
-
Файлы в текущей папке:
ls
-
Содержимое файлов:
ls /t
-
Содержимое файлов рекурсивно:
ls /d /t
-
Рекурсивный список:
ls /s
-
Полные пути рекурсивно:
ls /d
-
Только файлы с подробностями:
ls /f /l
-
Фильтр по расширению:
ls /l /v *.txt
-
Исключить расширения:
ls /t /x ".exe,.dll" -
Исключить директории (
bin,obj):ls /s /xd "bin,obj" -
Дерево каталогов без
binиobj:
ls /tree /xd "bin,obj"/vможет работать медленно на больших директориях./tвыводит содержимое как есть — бинарные файлы будут нечитаемыми./xdисключает директории по имени, но фильтрация выполняется по полному пути.- Для корректного отображения UTF‑8 требуется
chcp 65001.
-
Команда не найдена:
echo %PATH%
-
Пустой вывод:
dir /b -
Проблемы с кодировкой:
chcp 65001
-
Ошибки доступа:
icacls "C:\path\to\folder"
MIT License.
Создано пользователем dictovod.
Issue и PR приветствуются: https://github.com/dictovod/ls