Jak utworzyć ls w wierszu poleceń systemu Windows?


114

Chcę użyć ls w wierszu poleceń systemu Windows i uruchomić polecenie dir.

Jak mogę to zrobić?


4
Niektóre odpowiedzi są dość interesujące, ale co właściwie jest nie tak z poleceniem „dir”?
Matt Donnan,

3
@MattDonnan Jestem przyzwyczajony do ls i robię śmieszną minę, kiedy robię to w oknie. Już nie ^^
aF.

1
@DavidHeffernan, ponieważ nie istnieje w systemie Windows?
aF.

1
Jasne, że tak. Używam tego codziennie.
David Heffernan

1
@aF. Używam Windows 7, ale uruchamiam ls na dowolnej wersji Windows. Nie mówię, że Windows jest wyposażony w ls, tylko że jest open source i ma dobre porty Windows, to trywialne, aby go uruchomić w systemie Windows. Spójrz na GnuWin32.
David Heffernan

Odpowiedzi:


117

Mógłbyś:

  • utwórz plik wsadowy o nazwie ls.bati niech zawiera dirtylko polecenie
  • dodaj katalog, w którym ls.batplik istnieje, do PATHzmiennej środowiskowej

Możesz następnie wykonać lsz wiersza polecenia.


8
dlaczego nie umieścić ls.bat w folderze system32, aby nie trzeba było dodawać PATH
David 天宇 Wong

2
@David 天宇 Wong, jest bardzo możliwe, że użytkownik nie ma prawa do zapisu w tym folderze.
hmjd

2
to działa nadal, jeśli używasz go z argumentami: ls dir? Myślę, że musiałbyś zmodyfikować, ls.bataby obsługiwać argumenty ... lub możesz wypróbować aliasy: superuser.com/questions/49170/create-an-alias-in-windows-xp
nicorellius

Podoba mi się: @echo off \ ndir / w% 1%, aby zbliżyć się do formatu ls
mrcrowl

świetna odpowiedź, nie można tego komentować ;-)
Bamboomy

248

Możesz rozwiązać to pytanie za pomocą jednego prostego polecenia:

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

Jeśli korzystasz cmd.exez Vista i nowszych , najpierw uruchom jako administrator


14
Chciałbym móc to ocenić więcej niż raz. Pracował cudownie.
MrHappyAsthma

4
Jest to lepsze, ponieważ nadal możesz używać opcji dir.
ajon

17
dir %*Zalecałbym użycie zamiast tego, aby umożliwić przekazywanie dowolnej liczby argumentów wiersza poleceń do katalogu dir przez ls.bat. W przeciwnym razie, używając dir %1, możesz użyć co najwyżej jednego argumentu, gdy używasz skryptu ls.
Adaline Simonian

2
@Vartan szkoda, że ​​Twój komentarz jest pierwszy poniżej progu „pokaż więcej”. Miejmy nadzieję, że @secghost zobaczy to i kiedyś zmodyfikuje swoją odpowiedź. Chciałbym dodać, że @dir %*spowoduje to również usunięcie dodatkowej linii, dzięki czemu jest jeszcze bardziej identyczny zdir
Kapitan Man

1
@CaptainMan Oh, yeah! Całkowicie zapomniałem o @; sprytna składnia do użycia, aby uniknąć bałaganu na wyjściu. Chociaż byłoby o wiele łatwiej, gdyby system Windows był zgodny z POSIX. Przynajmniej możemy marzyć.
Adaline Simonian


18

Najłatwiejszy sposób, jaki znalazłem, to:

  1. zainstalować Git dla Windows
  2. Dodaj binkatalog Git do zmiennej Path. Mój znajdował się wC:\Program Files\Git\usr\bin .
  3. Uruchom wiersz poleceń i ciesz się lsw całej okazałości.

3
Świetna propozycja dająca dostęp do pełnej funkcjonalności lsi wszystkich jej opcjonalnych argumentów. Tylko niewielka aktualizacja, zainstalowałem najnowszą wersję git dla systemu Windows, a ls.exe można teraz znaleźć w C: \ Program Files \ Git \ usr \ bin
phil

Tak, lub po prostu uruchom bash.exe w folderze git (zamiast cmd) i ciesz się ~ pełną powłoką (z ls).
Johan

git bash jest ohydny, podoba mi się opcja ścieżki
omikes


9

Jeśli masz zainstalowany Node.js w swoim systemie, możesz zainstalować go z Cash , biblioteki, którą napisałem dla poleceń Linuksa w systemie Windows:

npm install cash-ls -g

Najlepszym rozwiązaniem kiedykolwiek użytkownik Linuksa na oknach npm install cash-global -g. Byłoby wspaniale dodać również ls -ljako ll(LL).
user2925656

To wybawiciel
HebleV

6

Wiersz polecenia systemu Windows dla Vista / 7 pozwoli na dowiązania symboliczne NTFS, uruchom cmd.exe jako administrator, a następnie:

mklink ls %System%\dir.exe

Następnie skonfiguruj zmienną środowiskową PATH, aby zawierała lokalizację właśnie utworzonego łącza.

Jeśli chcesz czegoś więcej niż tylko polecenie „ls”, powinieneś przyjrzeć się cygwin .

EDYCJA - Właśnie sobie sprawę, że dir.exenie jest oddzielnym programem, więc to tak naprawdę nie działa. Ale mklinki cygwin to dobre rzeczy, o których warto wiedzieć.


+1, zapomniałem powiedzieć, że to Windows XP, ale to jest dobre dla Windows Vista / 7 :)
aF.

4

+1 w poście powyżej sugeruje zainstalowanie git dla Windows i dodanie katalogu bin do zmiennych ścieżki.

Innym sposobem, w jaki uzyskałem kontakt, ls i wiele innych poleceń UNIX działających w cmd.exe na moich komputerach z systemem Windows 8 i Windows 7.

Przejdź do następującej witryny, aby zainstalować Cygwin

https://www.cygwin.com/install.html

Zainstaluj wersję 32- lub 64-bitową dla swojego systemu. Domyślne ustawienia i pakiety powinny zawierać to, czego potrzebujesz, więc nie musisz niczego zmieniać, gdy dojdziesz do ekranu pakietów.

Po instalacji skopiuj ścieżkę do folderu Cygwin do zmiennych ścieżki środowiskowej. Na przykład; jeśli zainstalowałeś cygwin w C: \ Cygwin, dodasz następujące zmienne do zmiennych ścieżki systemu:

; C: \ Cygwin \ bin

W moim systemie zainstalowałem wersję 64-bitową, a domyślna nazwa i ścieżka folderu to C: \ cygwin64. Dlatego dodałem następujące elementy do zmiennych ścieżki środowiska systemu:

; C: \ cygwin64 \ bin

Uruchom ponownie terminal, jeśli jest otwarty. Następnie wpisz ls, a zobaczysz listę katalogów.

Jeśli nie wiesz, jak ustawiać zmienne środowiskowe PATH, zapoznaj się z poniższymi informacjami:

Łącze superużytkownika 1

Superuser Link 2



3

możesz także użyć cygwin i po prostu użyć polecenia ls bezpośrednio wraz ze wszystkimi innymi narzędziami wiersza poleceń unix, do których możesz być przyzwyczajony.


3

mój ls.bat był poniżej

@dir %*

które mogą przenosić argumenty kliknięć

ls /b
ls /w

umieść go w% windir% lub w dowolnym katalogu w zmiennej% PATH%.

Tylko pamiętaj, aby zapisać plik z kodowaniem ANSI :)


2

Polecam następujący przepis.

  1. Użyj DOSKEYi, $*aby utworzyćls polecenie.
  2. Utrwal polecenie, zapisując je w pliku .bat / .cmd i dodaj ścieżkę do pliku do rejestru.

Na przykład, twoje polecenie może wyglądać tak, jakby
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*było przydatne w przypadku poleceń, które przyjmują argumenty. Na przykład tutaj lubię móc to zrobićsublime my_code.c .

Rejestr dla cmd znajduje się pod adresem HKEY_CURRENT_USER -> Oprogramowanie -> Microsoft -> Command Processor. Utwórz wpis o wartości ciągu o nazwie AutoRun z pełną ścieżką pliku (bez folderu zawierającego), taką jak%USERPROFILE%\custom_command.cmd . Następnie za każdym razem, gdy uruchomisz cmd, Twoje polecenie zostanie załadowane!

Możesz dodać więcej przydatnych rzeczy do pliku wsadowego. Zobacz tutaj przykładowy szablon.


2

Innym rozwiązaniem, który pracował dla mnie jest użycie UnxUtils , co dodaje wiele narzędzi z plików wykonywalnych (włącznie ls, sedorazgrep ).

Sposób użycia: pobierz kod źródłowy . Rozsunąć suwak. Dodaj UnxUtils\usr\local\wbinścieżkę do zmiennej PATH systemu Windows. Uruchom nową instancję CMD.


0

Z pewnością ls nie działałby jako polecenie unixowe dla partii. Jeśli zaznaczysz% 1 dla -l lub -a itd. I wszystkie ich kombinacje, zadziała ...


0

Możesz postępować zgodnie z tym przewodnikiem: https://gist.github.com/vladikoff/38307908088d58af206b

TL; DR : przejdź /K path/to/custom/init_cmd.batdo polecenia „uruchamiania powłoki”.

Używam ConsoleZ jako mojego opakowania powłoki, więc w moim przypadku mogę znaleźć opcję konfiguracji w "zakładkach", a następnie ustawiam ścieżkę powłoki na "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat"" taką .

Gdzie C:\cmd_init.batjest skrypt wsadowy zawierający moje makra, oto co chciałbym zrobić:

@echo off

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

Przepraszam za formatowanie i inne błędy, odpowiadam tutaj po raz pierwszy. Mam nadzieję, że to pomoże!


0

Ktoś, kto używa Linux Subsystem for Windows, może zadzwonić lsz Linux bash. Następujące polecenie tworzy lspolecenie w System32:

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

(Funkcja podsystemu Linux musi być najpierw włączona / zainstalowana)


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.