Я хочу использовать ls в командной строке Windows и заставить его запустить команду dir.
Как я могу это сделать?
Я хочу использовать ls в командной строке Windows и заставить его запустить команду dir.
Как я могу это сделать?
Вы можете:
ls.bat
и включить его только в dir
ls.bat
, к переменной среды PATH
Затем вы можете выполнить ls
из командной строки.
Вы можете решить этот вопрос одной простой командой:
echo @dir %* > %systemroot%\system32\ls.bat
Убедитесь, что вы запускаете cmd.exe
качестве администратора, если вы находитесь на Vista и выше.
Его старый вопрос, но для записи:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Дает вам и многое другое!
Самый простой способ, который я нашел, это:
bin
Git в переменную Path. Мой был расположен в C:\Program Files\Git\usr\bin
.ls
во всей красе.У меня есть решение, но оно грязное:
Создайте файл с именем ls.bat, содержащий только "dir".
Поместите его в C:\windows\system32 (или любой каталог в PATH env var).
Это (должно) работает!
Изменить: что-то более последовательное: https://superuser.com/questions/49170/create-an-alias-in-windows-xp
Если у вас есть Node.js, установленный в вашей системе, вы можете установить его из Cash, библиотека, которую я написал для команд Linux в Windows:
npm install cash-ls -g
Командная строка Windows для Vista/7 позволит использовать символические ссылки NTFS, затем запустите cmd.exe как администратор:
mklink ls %System%\dir.exe
Затем настройте переменную среды PATH, чтобы указать местоположение только что созданной ссылки.
Если вы хотите больше, чем просто команду "ls", вы должны изучить cygwin.
EDIT. Только что реализованный 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:
Если вы просто хотите, чтобы cmd распознал ls
как псевдоним для dir
, вы можете использовать команду doskey
(от этого ответа на суперпользователе).
Это не изменяет обработку параметров исходной командной строки команды dir.
вы также можете использовать cygwin и просто использовать команду ls непосредственно вместе со всеми другими инструментами командной строки unix, которые вы могли бы использовать для.
мой ls.bat был ниже
@dir %*
который может передавать cli args
ls /b
ls /w
поместите его в% windir% или в любой каталог из вашей переменной% PATH%.
Просто убедитесь, что вы сохранили файл с кодировкой ANSI:)
Другим решением, которое сработало для меня, является использование UnxUtils, который добавляет несколько утилит из исполняемых файлов (включая ls
, sed
и grep
).
Использовать: загрузить исходный код. Разархивируйте. Добавьте путь UnxUtils\usr\local\wbin
к переменной Windows PATH. Запустите новый экземпляр CMD.
Я рекомендую следующий рецепт.
DOSKEY
и $*
, чтобы создать команду ls
.Например, ваша команда может выглядеть так: 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, ваша команда будет загружена!
Вы также можете добавить в пакетный файл больше полезных файлов. См. здесь для примера шаблона.
Разумеется, 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
- это пакет script, содержащий мои макросы, вот что мне нужно:
@echo off
doskey ls=dir /b
rem other macro stuff..
Извините за форматирование и другие ошибки, это мой первый ответ. Надеюсь, это поможет!
Кто-то, кто использует Linux Subsystem для Windows, может вызвать ls
из Linux bash. Следующая команда создает команду ls
в System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(Функция подсистемы Linux должна быть сначала включена/установлена)
Вот мой исходный код С# и двоичный файл.
Просто добавьте ls.exe где-нибудь и добавьте путь к переменной среды пути.