ls.cmd — это мощный и гибкий скрипт для Windows Command Prompt (cmd), который эмулирует поведение Unix-команды ls. Он позволяет отображать содержимое директорий, включая файлы и папки, с различными опциями, такими как рекурсивный поиск, вывод полных путей, фильтрация по типам файлов и отображение содержимого файлов, аналогично команде type. Скрипт разработан с учётом поддержки UTF-8 для корректного отображения имён файлов на русском и других языках.
- Отображение содержимого директории: Показывает файлы в текущей папке с полными путями по умолчанию.
- Рекурсивный поиск: Поддерживает отображение файлов и папок в подпапках с опцией
/s. - Полные пути: Выводит полные пути к файлам рекурсивно с опцией
/d. - Вывод содержимого файлов: Показывает содержимое файлов, как команда
type, с опцией/t. - Фильтрация: Позволяет показывать только файлы (
/f) или использовать маску (например,*.exe). - Подробный режим: Отображает дату, время и размер файлов/папок с опцией
/l. - Размер папок: Показывает размер файлов и папок с опцией
/v(использует PowerShell для папок). - Поддержка UTF-8: Корректно отображает имена файлов на русском и других языках.
-
Скачайте скрипт:
- Загрузите файл
ls.cmdиз репозитория: https://github.com/dictovod/ls/blob/main/ls.cmd. - Или используйте команду для скачивания (требуется
curlилиwget):curl -o ls.cmd https://raw.githubusercontent.com/dictovod/ls/main/ls.cmd
- Загрузите файл
-
Разместите скрипт:
- Скопируйте
ls.cmdв директорию, доступную через переменную PATH, например:copy ls.cmd C:\Windows - Это позволит запускать команду
lsиз любой папки в cmd.
- Скопируйте
-
Проверьте права доступа:
- Убедитесь, что у вас есть права на выполнение скрипта и доступ к папке
C:\Windows(или другой выбранной директории).
- Убедитесь, что у вас есть права на выполнение скрипта и доступ к папке
-
Требования:
- Windows 7 или новее.
- PowerShell (для опции
/v, которая вычисляет размер папок). - Командная строка (cmd) с поддержкой UTF-8 (
chcp 65001включён в скрипте).
Запустите команду ls в cmd из любой директории. Без параметров ls показывает полные пути к файлам в текущей папке (без рекурсии). Поддерживаются дополнительные опции и маски для фильтрации.
ls [опции] [маска]/s— Рекурсивный список (включает файлы и папки из подпапок)./d— Выводит полные пути ко всем файлам рекурсивно (аналогfind . -type fв Unix)./f— Показывать только файлы (игнорировать папки)./l— Подробный режим (показывает дату, время и размер)./v— Показывать размер файлов и папок (медленнее для папок, использует PowerShell)./t— Выводит содержимое файлов, как командаtype. С/d— рекурсивно./hили/?— Показать справку.маска— Фильтр файлов, например,*.exeили*.txt.
Без параметров (ls) скрипт выводит полные пути к файлам в текущей директории (без рекурсии). Это эквивалентно команде dir /b | findstr "\.[a-zA-Z0-9]*$", но с поддержкой UTF-8 и более гибкими настройками.
-
Показать файлы в текущей папке (полные пути):
ls
Вывод:
[Список файлов с полными путями] C:\Users\user\Documents\file1.txt C:\Users\user\Documents\script.py -
Показать содержимое файлов в текущей папке:
ls /t
Вывод:
[Содержимое файлов в текущей папке] === Содержимое файла: C:\Users\user\Documents\file1.txt === Hello, world! === Содержимое файла: C:\Users\user\Documents\script.py === print("Hello, world!") -
Показать содержимое файлов рекурсивно:
ls /d /t
Вывод:
[Содержимое файлов с полными путями рекурсивно] === Содержимое файла: C:\Users\user\Documents\file1.txt === Hello, world! === Содержимое файла: C:\Users\user\Documents\subfolder\file2.txt === Another file content -
Рекурсивный список файлов и папок:
ls /s
Вывод:
[Рекурсивный список] file1.txt subfolder\file2.txt -
Полные пути ко всем файлам рекурсивно:
ls /d
Вывод:
[Список файлов с полными путями] C:\Users\user\Documents\file1.txt C:\Users\user\Documents\subfolder\file2.txt -
Показать только файлы с подробной информацией:
ls /f /l
Вывод:
[Текущая папка] 27.09.2025 08:50 1024 bytes C:\Users\user\Documents\file1.txt -
Показать файлы с расширением
.txtс размерами:ls /l /v *.txt
Вывод:
[Текущая папка] 27.09.2025 08:50 1024 bytes C:\Users\user\Documents\file1.txt
- Опция
/v(показ размера папок) использует PowerShell, что может быть медленно для больших директорий. - Опция
/tработает с текстовыми файлами. Для двоичных файлов (например,.exe,.jpg) вывод может быть нечитаемым. - В некоторых случаях имена файлов с нестандартными символами могут отображаться некорректно, если кодировка терминала не настроена на UTF-8.
- Требуется доступ к PowerShell для вычисления размера папок (опция
/v).
-
Команда не найдена: Убедитесь, что
ls.cmdнаходится в папке, указанной в переменной PATH (например,C:\Windows). Проверьте PATH:echo %PATH%
-
Пустой вывод: Если команда
lsне возвращает файлы, проверьте, есть ли файлы с расширениями в текущей папке:dir /b -
Ошибки доступа: Если вы видите "Access denied" при использовании
/tили других опций, проверьте права доступа к файлам или папкам:icacls "C:\path\to\folder"
-
Проблемы с кодировкой: Если имена файлов или их содержимое отображаются некорректно, убедитесь, что терминал использует UTF-8:
chcp 65001
-
Нечитаемый вывод для двоичных файлов: Если при использовании
/tвыводятся нечитаемые символы, заменитеtypeнаmoreв скрипте или фильтруйте текстовые файлы с помощью маски (например,ls /t *.txt).
Этот скрипт распространяется под лицензией MIT. Подробности см. в файле LICENSE в репозитории.
Создано пользователем dictovod. Если у вас есть предложения или исправления, создайте issue или pull request в репозитории: https://github.com/dictovod/ls.