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

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

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


person aF.    schedule 20.02.2012    source источник
comment
Некоторые ответы довольно интересны, но что именно не так с командой 'dir'?   -  person Matt Donnan    schedule 20.02.2012
comment
@MattDonnan Я просто привык к ls и корчу забавное лицо, когда делаю это в Windows. Больше нет ^^   -  person aF.    schedule 20.02.2012
comment
@aF Если вам нужна ls, почему бы вам просто не использовать настоящую ls?   -  person David Heffernan    schedule 25.10.2013
comment
@DavidHeffernan, потому что его нет в Windows?   -  person aF.    schedule 30.10.2013
comment
Конечно, есть. Я использую это каждый день.   -  person David Heffernan    schedule 30.10.2013
comment
@DavidHeffernan, а у вас версия для windows?   -  person aF.    schedule 05.11.2013
comment
@aF. Я использую Windows 7, но использую ls в любой версии Windows. Я не говорю, что Windows поставляется с ls, просто это открытый исходный код и хорошие порты Windows, поэтому запускать его в Windows тривиально. Посмотрите на GnuWin32.   -  person David Heffernan    schedule 05.11.2013


Ответы (19)


Вы могли:

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

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

person hmjd    schedule 20.02.2012
comment
почему бы не поместить ls.bat в папку system32, чтобы вам не нужно было добавлять PATH - person David 天宇 Wong; 25.06.2013
comment
@David 天宇 Wong, вполне возможно, что у пользователя нет прав на запись в эту папку. - person hmjd; 25.06.2013
comment
это все еще работает, если вы используете его с args: ls dir? Я думаю, вам нужно изменить ls.bat для обработки аргументов ... или вы можете попробовать псевдонимы: superuser.com/questions/49170/create-an-alias-in-windows-xp - person nicorellius; 30.08.2013
comment
Мне нравится: @echo off \ ndir / w% 1%, чтобы приблизиться к формату ls - person mrcrowl; 12.04.2015
comment
отличный ответ, это не должно быть возможности комментировать ;-) - person Bamboomy; 10.06.2017
comment
Вы также можете установить cygwin и использовать там ls: › - person information_interchange; 08.07.2018

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

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

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

person secghost    schedule 23.02.2013
comment
Хотел бы я оценить это больше, чем один раз. Сработало на удивление. - person MrHappyAsthma; 14.05.2013
comment
Это лучше, потому что вы все еще можете использовать параметры dir. - person ajon; 12.11.2013
comment
Я рекомендую echo dir %1 /B > %systemroot%\system32\ll.bat для простого списка, потому что я использую ll чаще, чем ls. - person alexvetter; 25.02.2014
comment
работать как шарм .. больше никаких неопознанных команд в windows! Спасибо!! - person Aitor; 20.04.2015
comment
Я бы рекомендовал вместо этого использовать dir %*, чтобы разрешить передачу любого количества аргументов командной строки в dir через ls.bat. В противном случае, используя dir %1, вы можете использовать не более одного аргумента при использовании сценария ls. - person Adaline Simonian; 03.05.2015
comment
@Vartan, жаль, что ваш комментарий первый ниже порога "Показать больше". Надеюсь, @secghost увидит это и когда-нибудь изменит свой ответ. Я хотел бы добавить, что выполнение @dir %* также удалит лишнюю строку, поэтому она еще более идентична dir - person Captain Man; 22.05.2015
comment
@CaptainMan О да! Совсем забыл про @; отличный синтаксис, чтобы избежать беспорядка в выводе. Хотя было бы намного проще, если бы Windows была совместима с POSIX. По крайней мере, мы можем мечтать. - person Adaline Simonian; 22.05.2015
comment
Я возвращался к этому ответу несколько раз. Обязательно должен быть на высоте. - person Christopher Schneider; 03.11.2015
comment
когда я выполняю его, он сообщает мне, что доступ запрещен в Windows 10. Я дал доступ на запись моему пользователю, но все еще не работал. любая идея? - person DragonKnight; 02.12.2015
comment
У меня это работает в Windows10 (но вы должны использовать командную строку с правами администратора. - person Pierre Poliakoff; 26.12.2015
comment
пока вы занимаетесь этим, вы также можете добавить: echo cls% 1 ›% systemroot% \ system32 \ clear.bat - person david.barkhuizen; 31.12.2015
comment
Выходи за меня. Это было самым большим спасением на свете. - person War Gravy; 16.09.2016
comment
Пожалуйста, не взламывайте мой фейсбук. - person Danielr; 12.10.2020

Это старый вопрос, но для протокола:

http://gnuwin32.sourceforge.net/packages/coreutils.htm

Дает вам ls и многое другое!

person sipickles    schedule 25.04.2013
comment
+1 ls * и dir * не делают одно и то же, так что aliasing dir немного неудобен. - person Pete Kirkham; 13.05.2013
comment
Это лучший ответ. Проигнорируйте голосование и сделайте это. - person demented hedgehog; 22.05.2014
comment
не забудьте добавить C:\Program Files (x86)\GnuWin32\bin к своему пути - person omikes; 10.04.2018

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

  1. Установите Git для Windows
  2. Добавьте каталог bin Git в свою переменную Path. Шахта находилась в C:\Program Files\Git\usr\bin.
  3. Запустите командную строку и наслаждайтесь ls во всей красе.
person varagrawal    schedule 28.11.2014
comment
Отличное предложение, которое дает доступ к полной функциональности ls и всех его необязательных аргументов. Небольшое обновление, я установил последнюю версию git для Windows, и теперь ls.exe можно найти в C: \ Program Files \ Git \ usr \ bin - person phil; 24.11.2016
comment
Да, или просто запустите bash.exe в папке git (вместо cmd) и наслаждайтесь ~ полной оболочкой (с ls). - person Johan; 31.10.2017
comment
git bash ужасен, мне нравится вариант пути - person omikes; 10.04.2018

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

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

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

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

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

person STM    schedule 20.02.2012

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

npm install cash-ls -g
person dthree    schedule 27.02.2016
comment
лучшее решение для пользователей Linux в Windows, npm install cash-global -g. Было бы здорово добавить ls -l как ll (LL). - person user2925656; 14.03.2017
comment
Его помощник-спаситель - person jackD; 16.05.2017

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

mklink ls %System%\dir.exe

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

Если вам нужна не только команда 'ls', вам следует изучить cygwin.

РЕДАКТИРОВАТЬ. Я только что понял, что dir.exe не является отдельной программой, поэтому на самом деле это не работает. Но о mklink и cygwin следует знать.

person buster    schedule 20.02.2012
comment
+1, забыл сказать, что это windows xp, но для windows vista / 7 это хорошо :) - person aF.; 20.02.2012

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

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

person devio    schedule 20.02.2012

+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

person jtlindsey    schedule 18.02.2015

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

person Nerdtron    schedule 20.02.2012

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

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

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

Реестр для cmd находится по адресу HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor. Создайте запись со строковым значением с именем AutoRun с полным путем к файлу (не содержащей папку), например %USERPROFILE%\custom_command.cmd. Тогда каждый раз, когда запускается cmd, ваша команда будет загружаться!

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

person Argyll    schedule 10.01.2014

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

@dir %*

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

ls /b
ls /w

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

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

person IlPADlI    schedule 12.12.2013

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

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

person Bird    schedule 19.12.2017

Самый простой способ

  • установить git
  • добавьте C:\Program Files\Git\usr\bin в переменную пути

теперь вы можете использовать ls

person Community    schedule 14.09.2020

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

person docowhocool    schedule 17.12.2013

Вы можете следовать этому руководству: 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 - пакетный сценарий, содержащий мои макросы, вот что я бы сделал:

@echo off

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

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

person jred_kai    schedule 30.06.2017

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

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

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

person A. Markóczy    schedule 22.07.2019

Создайте псевдоним в файле .bat или .cmd, используя ключ doskey:

@echo off
title "ls command cmd bar"
doskey ls=echo off $T dir $* $T echo on

Наслаждайтесь =)

person Bk01    schedule 25.11.2020

Вот мой исходный код C # и двоичный код.

Просто добавьте куда-нибудь ls.exe и добавьте путь к переменной окружения path.

person user3880586    schedule 02.06.2017
comment
Бинарный файл не нужен. Просто используйте символическую ссылку или файл bat. - person Christopher Schneider; 20.07.2017