Некоторые ответы довольно интересны, но что именно не так с командой dir?
Мэтт Доннан,
3
@MattDonnan я просто привык к Лс я сделать смешное лицо , когда я делаю это на окнах. Больше нет ^^
aF.
1
@DavidHeffernan, потому что его нет в Windows?
aF.
1
Конечно, есть. Я использую это каждый день.
Дэвид Хеффернан
1
@aF. Я использую Windows 7, но использую ls в любой версии Windows. Я не говорю, что Windows поставляется с ls, просто это открытый исходный код и хорошие порты Windows, поэтому запускать его в Windows тривиально. Посмотрите на GnuWin32.
Дэвид Хеффернан
Ответы:
117
Ты мог:
создать командный файл с именем ls.batи содержать dirтолько команду
добавьте каталог, в котором ls.batсуществует файл, в PATHпеременную среды
Затем вы можете выполнить его lsиз командной строки.
почему бы не поместить ls.bat в папку system32, чтобы вам не приходилось добавлять PATH
Дэвид 天宇 Вонг
2
@David 天宇 Wong, вполне возможно, что у пользователя нет доступа на запись в эту папку.
hmjd
2
делает это по- прежнему работать , если вы используете его с аргументами: ls dir? Я думаю, вам нужно будет изменить ls.batдля обработки аргументов ... или вы можете попробовать псевдонимы: superuser.com/questions/49170/create-an-alias-in-windows-xp
Никореллиус
Мне нравится: @echo off \ ndir / w% 1%, чтобы приблизиться к формату ls
mrcrowl
отличный ответ, это не должно быть возможности комментировать ;-)
Bamboomy
248
Вы можете решить этот вопрос с помощью одной простой команды:
echo @dir %* > %systemroot%\system32\ls.bat
Убедитесь, что вы cmd.exeсначала запускаете как администратор, если вы находитесь в Vista и выше
Хотел бы я оценить это больше одного раза. Сработало на удивление.
MrHappyAsthma
4
Это лучше, потому что вы все еще можете использовать параметры dir.
ajon
17
Я бы рекомендовал использовать dir %*вместо этого, чтобы разрешить передачу любого количества аргументов командной строки в dir через ls.bat. В противном случае, используя dir %1, вы можете использовать только один аргумент при использовании сценария ls.
Адалин Симонян
2
@Vartan, жаль, что ваш комментарий первый ниже порогового значения "показать больше". Надеюсь, @secghost увидит это и когда-нибудь изменит свой ответ. Я хотел бы добавить, что выполнение @dir %*также удалит лишнюю строку, так что она будет еще более идентичнаdir
Captain Man
1
@CaptainMan О да! Совсем забыл @; отличный синтаксис, чтобы избежать беспорядка в выводе. Хотя было бы намного проще, если бы Windows была совместима с POSIX. По крайней мере, мы можем мечтать.
Отличное предложение, которое дает доступ к полной функциональности lsи всем необязательным аргументам. Просто небольшое обновление, я установил последнюю версию git для Windows, и теперь ls.exe можно найти в C: \ Program Files \ Git \ usr \ bin
phil
Да, или просто запустите bash.exe в папке git (вместо cmd) и наслаждайтесь ~ полной оболочкой (с ls).
Johan
git bash ужасен, мне нравится вариант пути
omikes
16
У меня есть решение, но оно грязное:
Создайте файл с именем ls.bat, содержащий только «dir».
Поместите его в C: \ windows \ system32 (или в любой каталог в PATH env var).
Установите 32- или 64-битную версию для вашей системы. Настройки и пакеты по умолчанию должны включать все, что вам нужно, поэтому вам не нужно ничего менять, когда вы перейдете на экран пакетов.
После установки скопируйте путь к папке Cygwin в переменные пути вашей среды. Например; если вы установили cygwin в C: \ Cygwin, вы добавите следующее в переменные системного пути вашей среды:
; C: \ Cygwin \ Bin
В моей системе я установил 64-битную версию, а имя и путь к папке по умолчанию были C: \ cygwin64. Поэтому я добавил следующие переменные пути к моей системной среде:
; C: \ cygwin64 \ Bin
Перезагрузите терминал, если он открыт. Затем введите ls, и вы увидите список каталогов.
См. Следующее, если вы не знакомы с настройкой переменных среды PATH:
вы также можете использовать cygwin и просто использовать команду ls напрямую вместе со всеми другими инструментами командной строки unix, к которым вы, возможно, привыкли.
Используйте 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 -> Software -> Microsoft -> Command Processor. Создайте запись со строковым значением AutoRun с полным путем к файлу (а не к папке, содержащей его), например %USERPROFILE%\custom_command.cmd. Тогда каждый раз при запуске cmd ваша команда будет загружаться!
Вы также можете добавить больше полезных вещей в командный файл. См. Здесь образец шаблона.
Другим решением , которое работало для меня является использование UnxUtils , который добавляет несколько утилит из исполняемых файлов ( в том числе ls, sedи grep).
Для использования: скачать исходный код . Разархивируйте. Добавьте UnxUtils\usr\local\wbinпуть к переменной Windows PATH. Запустите новый экземпляр CMD.
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..
Извините за форматирование и другие ошибки, я отвечаю здесь впервые. Я надеюсь, что это помогает!
Ответы:
Ты мог:
ls.bat
и содержатьdir
только командуls.bat
существует файл, вPATH
переменную средыЗатем вы можете выполнить его
ls
из командной строки.источник
ls dir
? Я думаю, вам нужно будет изменитьls.bat
для обработки аргументов ... или вы можете попробовать псевдонимы: superuser.com/questions/49170/create-an-alias-in-windows-xpВы можете решить этот вопрос с помощью одной простой команды:
Убедитесь, что вы
cmd.exe
сначала запускаете как администратор, если вы находитесь в Vista и вышеисточник
dir %*
вместо этого, чтобы разрешить передачу любого количества аргументов командной строки в dir через ls.bat. В противном случае, используяdir %1
, вы можете использовать только один аргумент при использовании сценария ls.@dir %*
также удалит лишнюю строку, так что она будет еще более идентичнаdir
@
; отличный синтаксис, чтобы избежать беспорядка в выводе. Хотя было бы намного проще, если бы Windows была совместима с POSIX. По крайней мере, мы можем мечтать.Это старый вопрос, но для протокола:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Дает вам ls и многое другое!
источник
ls *
иdir *
не делайте то же самое, так что псевдоним dir немного утомляет.C:\Program Files (x86)\GnuWin32\bin
к своему путиСамый простой способ, который я нашел:
bin
каталог Git в свою переменную Path. Шахта была расположена вC:\Program Files\Git\usr\bin
.ls
во всей красе.источник
ls
и всем необязательным аргументам. Просто небольшое обновление, я установил последнюю версию git для Windows, и теперь ls.exe можно найти в C: \ Program Files \ Git \ usr \ binУ меня есть решение, но оно грязное:
Создайте файл с именем ls.bat, содержащий только «dir».
Поместите его в C: \ windows \ system32 (или в любой каталог в PATH env var).
Это (должно) работает!
Изменить: что-то более последовательное: /superuser/49170/create-an-alias-in-windows-xp
источник
Если в вашей системе установлен Node.js , вы можете установить его из Cash , библиотеки, которую я написал для команд Linux в Windows:
источник
npm install cash-global -g
. Было бы здорово добавитьls -l
такжеll
(LL).Командная строка Windows для Vista / 7 разрешит символические ссылки NTFS, запустите cmd.exe от имени администратора, затем:
Затем настройте переменную среды PATH, чтобы указать местоположение только что созданной ссылки.
Если вам нужно больше, чем просто команда 'ls', вам следует изучить cygwin .
РЕДАКТИРОВАТЬ - Только что реализовано,
dir.exe
это не отдельная программа, поэтому это не работает. Ноmklink
и cygwin есть о чем знать.источник
+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
источник
Если вы просто хотите, чтобы cmd распознавал
ls
псевдоним дляdir
, вы можете использоватьdoskey
команду (из этого ответа о суперпользователе ).Это не меняет исходную обработку параметров командной строки команды dir.
источник
вы также можете использовать cygwin и просто использовать команду ls напрямую вместе со всеми другими инструментами командной строки unix, к которым вы, возможно, привыкли.
источник
мой ls.bat был ниже
который может передавать cli args
поместите его в% windir% или в любой каталог в вашей переменной% PATH%.
Только убедитесь, что вы сохранили файл в кодировке ANSI :)
источник
Рекомендую следующий рецепт.
DOSKEY
и,$*
чтобы создать своюls
команду.Например, ваша команда может выглядеть
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 ваша команда будет загружаться!Вы также можете добавить больше полезных вещей в командный файл. См. Здесь образец шаблона.
источник
Другим решением , которое работало для меня является использование UnxUtils , который добавляет несколько утилит из исполняемых файлов ( в том числе
ls
,sed
иgrep
).Для использования: скачать исходный код . Разархивируйте. Добавьте
UnxUtils\usr\local\wbin
путь к переменной Windows PATH. Запустите новый экземпляр CMD.источник
Конечно, ls не будет работать как команда unix для пакетов. Если вы отметите% 1 для -l или -a и т. Д. И все их комбинации, это сработает ...
источник
Вы можете следовать этому руководству: 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
пакетный сценарий, содержащий мои макросы, вот что я бы сделал:Извините за форматирование и другие ошибки, я отвечаю здесь впервые. Я надеюсь, что это помогает!
источник
Тот, кто использует подсистему Linux для Windows, может позвонить
ls
из Linux bash. Следующая команда создаетls
команду в System32:(Сначала должна быть включена / установлена функция подсистемы Linux)
источник
Вот мой исходный код C # и двоичный файл .
Просто добавьте куда-нибудь ls.exe и добавьте путь к переменной окружения path.
источник