Як створити командний рядок ls у вікні Windows?


114

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

Як я можу це зробити?


4
Деякі відповіді досить цікаві, але що саме не так з командою 'dir'?
Метт Доннан

3
@MattDonnan Я просто звик до ls, і я роблю смішне обличчя, коли роблю це на windows. Більше ^^
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з командного рядка.


8
чому б не помістити ls.bat у папку system32, щоб не довелося додавати PATH
David 天宇 Wong,

2
@David 天宇 Wong, дуже можливо, що користувач може не мати доступу для запису до цієї папки.
hmjd

2
це все ще працює, якщо ви використовуєте його з аргументами ls dir:? Я думаю, вам потрібно буде змінити ls.batаргументи для обробки ... або ви можете спробувати псевдоніми: superuser.com/questions/49170/create-an-alias-in-windows-xp
nicorellius

Мені подобається: @echo off \ ndir / w% 1% наблизитися до формату ls
mrcrowl

відмінна відповідь, коментувати це не повинно бути можливим ;-)
Bamboomy

248

Ви можете вирішити це питання за допомогою однієї простої команди:

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

Переконайтеся, що ви працюєте cmd.exeв якості адміністратора першим, якщо ви перебуваєте в режимі перегляду та вище


14
Я б хотів, щоб я міг оцінити це не раз. Працювали дивовижно.
MrHappyAsthma

4
Це краще, тому що ви все ще можете використовувати варіанти dir.
ajon

17
Я б рекомендував використовувати dir %*натомість, щоб дозволити передачу будь-якої кількості аргументів командного рядка в dir через ls.bat. В іншому випадку, використовуючи dir %1, максимум, ви можете використовувати лише один аргумент при використанні скрипту ls.
Адалін Симонян

2
@Vartan прикро, що ваш коментар перший під порогом "показати більше". Сподіваємось @secghost побачить це і змінить свою відповідь колись. Я хотів би додати, що це @dir %*також видалить зайву лінію, так що вона ще більш ідентичнаdir
Капітан Людина

1
@CaptainMan О, так! Повністю забув @; вишуканий біт синтаксису, щоб уникнути безладу виводу. Хоча було б набагато простіше, якби Windows відповідала POSIX. Принаймні ми можемо мріяти.
Адалін Симонян

36

Старе питання, але для запису:

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

Дає вам і багато іншого!


7
+1 ls *і dir *не робіть те ж саме, тож псевдонім режисера - трохи штани.
Піт Кіркхем

2
Це найкраща відповідь. Ігноруйте голосування і робіть це.
дементований їжак

не забудьте додати C:\Program Files (x86)\GnuWin32\binдо свого шляху
omikes

18

Найпростіший спосіб я знайшов:

  1. Встановіть Git для Windows
  2. Додайте binкаталог Git до змінної Path. Шахта знаходилася в с C:\Program Files\Git\usr\bin.
  3. Запустіть командний рядок і насолоджуйтесь lsу всій красі.

3
Відмінна пропозиція, яка дає доступ до повної функціональності lsта всього, що це необов'язково, аргументів. Лише невелике оновлення, я встановив останню версію git для Windows, і ls.exe тепер можна знайти в C: \ Program Files \ Git \ usr \ bin
phil

Так, або просто запустіть bash.exe в папці git (замість cmd) і насолоджуйтесь ~ повною оболонкою (з ls).
Йоган

git bash - огидний, мені подобається варіант шляху
omikes

16

У мене є рішення, але воно брудне:

Створіть файл під назвою ls.bat, що містить лише "dir".

Помістіть його в C: \ windows \ system32 (або будь-який каталог у PATH env var).

Це (повинно) працює!

Редагувати: Щось більш послідовне: /superuser/49170/create-an-alias-in-windows-xp


9

Якщо у вашій системі встановлений Node.js , ви можете встановити його з Cash , бібліотеки, яку я написав для команд Linux у Windows:

npm install cash-ls -g

найкраще рішення будь-коли для користувача Linux на Windows npm install cash-global -g. Було б чудово додати ls -lтакож ll(LL).
користувач2925656

Його спаситель
Хеблев

6

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

mklink ls %System%\dir.exe

Потім встановіть змінну середовища PATH, щоб вона містила розташування посилання, яке ви тільки що створили.

Якщо ви хочете більше, ніж просто команда 'ls', вам слід заглянути в cygwin .

EDIT - Щойно зрозумів, dir.exeце не окрема програма, тому це насправді не працює. Але mklinkі цигун - це добре знати, про що.


+1, я забув сказати, що це був windows xp, але це добре для Windows Vista / 7 :)
aF.

4

+1 в публікації вище, пропонуючи встановити git для Windows та додати в каталог змінні вашого змінного маршруту.

Іншим способом я отримав контакт, 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



3

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


3

мій ls.bat був нижче

@dir %*

які можуть передавати клі-арги

ls /b
ls /w

помістіть його у% windir% або будь-який каталог у вашій змінній% PATH%.

Просто переконайтеся, що ви зберегли файл із кодуванням ANSI :)


2

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

  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 -> Програмне забезпечення -> Microsoft -> Командний процесор. Створіть рядок з цінністю під назвою AutoRun з повним шляхом до файлу (не містить папки), наприклад %USERPROFILE%\custom_command.cmd. Тоді кожного разу, коли запускається cmd, ваша команда завантажується!

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


2

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

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


0

Напевно, ls не працюватиме як команда unix для пакетів. Якщо ви перевірите% 1 на -l або -a і т. Д. І всі їх комбінації, це буде працювати ...


0

Ви можете дотримуватися цього посібника: 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..

Вибачте за форматування та інші помилки, тут я вперше відповідаю. Я сподіваюся, що це допомагає!


0

Хтось, хто використовує підсистему Linux для Windows, може зателефонувати lsз Linux bash. Наступна команда створює lsкоманду в System32:

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

(Функцію підсистеми Linux потрібно ввімкнути / встановити спочатку)


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.