Я хочу использовать ls в командной строке Windows и запустить команду dir.
Как я могу это сделать?
Я хочу использовать ls в командной строке Windows и запустить команду dir.
Как я могу это сделать?
Ответы:
Ты мог:
ls.bat
и содержать dir
только командуls.bat
существует файл, в PATH
переменную средыЗатем вы можете выполнить его ls
из командной строки.
ls dir
? Я думаю, вам нужно будет изменить ls.bat
для обработки аргументов ... или вы можете попробовать псевдонимы: superuser.com/questions/49170/create-an-alias-in-windows-xp
Вы можете решить этот вопрос с помощью одной простой команды:
echo @dir %* > %systemroot%\system32\ls.bat
Убедитесь, что вы 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-ls -g
npm install cash-global -g
. Было бы здорово добавить ls -l
также ll
(LL).
Командная строка Windows для Vista / 7 разрешит символические ссылки NTFS, запустите cmd.exe от имени администратора, затем:
mklink ls %System%\dir.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:
Если вы просто хотите, чтобы cmd распознавал ls
псевдоним для dir
, вы можете использовать doskey
команду (из этого ответа о суперпользователе ).
Это не меняет исходную обработку параметров командной строки команды dir.
Рекомендую следующий рецепт.
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
пакетный сценарий, содержащий мои макросы, вот что я бы сделал:
@echo off
doskey ls=dir /b
rem other macro stuff..
Извините за форматирование и другие ошибки, я отвечаю здесь впервые. Я надеюсь, что это помогает!
Тот, кто использует подсистему Linux для Windows, может позвонить ls
из Linux bash. Следующая команда создает ls
команду в System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(Сначала должна быть включена / установлена функция подсистемы Linux)
Вот мой исходный код C # и двоичный файл .
Просто добавьте куда-нибудь ls.exe и добавьте путь к переменной окружения path.