Как создать ls в командной строке Windows?

Я хочу использовать ls в командной строке Windows и заставить его запустить команду dir.

Как я могу это сделать?

Ответ 1

Вы можете:

  • создать пакетный файл с именем ls.bat и включить его только в dir
  • добавить каталог, в котором существует файл ls.bat, к переменной среды PATH

Затем вы можете выполнить ls из командной строки.

Ответ 2

Вы можете решить этот вопрос одной простой командой:

echo @dir %* > %systemroot%\system32\ls.bat

Убедитесь, что вы запускаете cmd.exe качестве администратора, если вы находитесь на Vista и выше.

Ответ 4

Самый простой способ, который я нашел, это:

  • Установите Git для Windows
  • Добавьте каталог bin Git в переменную Path. Мой был расположен в C:\Program Files\Git\usr\bin.
  • Запустите командную строку и наслаждайтесь ls во всей красе.

Ответ 5

У меня есть решение, но оно грязное:

Создайте файл с именем ls.bat, содержащий только "dir".

Поместите его в C:\windows\system32 (или любой каталог в PATH env var).

Это (должно) работает!

Изменить: что-то более последовательное: https://superuser.com/questions/49170/create-an-alias-in-windows-xp

Ответ 6

Если у вас есть Node.js, установленный в вашей системе, вы можете установить его из Cash, библиотека, которую я написал для команд Linux в Windows:

npm install cash-ls -g

Ответ 7

Командная строка Windows для Vista/7 позволит использовать символические ссылки NTFS, затем запустите cmd.exe как администратор:

mklink ls %System%\dir.exe

Затем настройте переменную среды PATH, чтобы указать местоположение только что созданной ссылки.

Если вы хотите больше, чем просто команду "ls", вы должны изучить cygwin.

EDIT. Только что реализованный dir.exe не является отдельной программой, поэтому на самом деле это не работает. Но mklink и cygwin - хорошие вещи, о которых нужно знать.

Ответ 8

+1 на вышеприведенном сообщении, предлагая установить git для Windows и добавить bin в каталог к ​​вашим переменным пути.

Другим способом я получил touch, ls и многие другие команды UNIX, работающие в cmd.exe на моих машинах Windows 8 и Windows 7.

Перейдите на следующий сайт, чтобы установить Cygwin

https://www.cygwin.com/install.html

Установите 32 или 64-разрядную версию для вашей системы. Настройки и пакеты по умолчанию должны включать то, что вам нужно, чтобы вам не пришлось ничего менять, как только вы попадаете на экран пакетов.

После установки скопируйте путь папки Cygwin к переменным пути среды. Например; если вы установили cygwin в C:\Cygwin, вы добавите следующее в переменные пути системы среды:

; C:\Cygwin\Bin

В моей системе я установил 64-битную версию, а имя папки по умолчанию и путь - C:\cygwin64. Поэтому я добавил следующие переменные пути к моей системе:

; C:\cygwin64\BIN

Перезагрузите терминал, если он открыт. Затем введите ls, и вы увидите список каталогов.

Обратите внимание на следующее, если вы не знакомы с настройкой переменных среды PATH:

Ссылка суперпользователя 1

Ссылка на суперпользователя 2

Ответ 9

Если вы просто хотите, чтобы cmd распознал ls как псевдоним для dir, вы можете использовать команду doskey (от этого ответа на суперпользователе).

Это не изменяет обработку параметров исходной командной строки команды dir.

Ответ 10

вы также можете использовать cygwin и просто использовать команду ls непосредственно вместе со всеми другими инструментами командной строки unix, которые вы могли бы использовать для.

Ответ 11

мой ls.bat был ниже

@dir %*

который может передавать cli args

ls /b
ls /w

поместите его в% windir% или в любой каталог из вашей переменной% PATH%.

Просто убедитесь, что вы сохранили файл с кодировкой ANSI:)

Ответ 12

Другим решением, которое сработало для меня, является использование UnxUtils, который добавляет несколько утилит из исполняемых файлов (включая ls, sed и grep).

Использовать: загрузить исходный код. Разархивируйте. Добавьте путь UnxUtils\usr\local\wbin к переменной Windows PATH. Запустите новый экземпляр CMD.

Ответ 13

Я рекомендую следующий рецепт.

  • Используйте DOSKEY и $*, чтобы создать команду ls.
  • Сделайте команду постоянной, записав ее в файле .bat/.cmd и добавьте путь к файлу в реестр.

Например, ваша команда может выглядеть так:        DOSKEY ls=dir
       DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$* полезен для команд, которые принимают аргументы. Например, здесь мне нравится делать sublime my_code.c.

Реестр cmd находится в HKEY_CURRENT_USER → Программное обеспечение → Microsoft → Командный процессор. Создайте строковую запись с именем AutoRun с полным путем к файлу (не содержащей папку), например %USERPROFILE%\custom_command.cmd. Затем каждый раз, когда выполняется cmd, ваша команда будет загружена!

Вы также можете добавить в пакетный файл больше полезных файлов. См. здесь для примера шаблона.

Ответ 14

Разумеется, ls не будет работать как команда unix для партий. Если вы проверите% 1 для -l или -a и т.д. И все их комбинации, это сработает...

Ответ 15

Вы можете следовать этому руководству: https://gist.github.com/vladikoff/38307908088d58af206b

TL; DR: передать /K path/to/custom/init_cmd.bat в команду "запуск пуска".

Я использую ConsoleZ в качестве оболочки оболочки, поэтому в моем случае я могу найти параметр настройки в "вкладках", затем я установил путь оболочки к "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat"" как это.

Где C:\cmd_init.bat - это пакет script, содержащий мои макросы, вот что мне нужно:

@echo off

doskey ls=dir /b
rem other macro stuff..

Извините за форматирование и другие ошибки, это мой первый ответ. Надеюсь, это поможет!

Ответ 16

Кто-то, кто использует Linux Subsystem для Windows, может вызвать ls из Linux bash. Следующая команда создает команду ls в System32:

echo @bash -c "ls %*" > %systemroot%\system32\ls.bat

(Функция подсистемы Linux должна быть сначала включена/установлена)