Algumas das respostas são bastante interessantes, mas o que exatamente há de errado com o comando 'dir'?
Matt Donnan de
3
@MattDonnan Estou acostumado com ls e faço uma cara engraçada quando faço isso no windows. Não mais ^^
aF.
1
@DavidHeffernan porque não existe no windows?
aF.
1
Claro que sim. Eu uso todos os dias.
David Heffernan
1
@aF. Estou usando o Windows 7, mas executo o ls em qualquer versão do Windows. Não estou dizendo que o Windows vem com ls, apenas que sendo um código aberto e tendo boas portas do Windows, é trivial executá-lo no Windows. Olhe para GnuWin32.
David Heffernan
Respostas:
117
Você poderia:
crie um arquivo em lote chamado ls.bate faça com que ele contenha odir apenas comando
adicione o diretório onde o ls.batarquivo existe à sua PATHvariável de ambiente
Você pode então executar a lspartir de um prompt de comando.
Eu gostaria de poder avaliar isso mais de uma vez. Funcionou maravilhosamente.
MrHappyAsthma
4
Isso é melhor porque você ainda pode usar as opções de dir.
ajon
17
Eu recomendaria usar em dir %*vez disso para permitir que qualquer número de argumentos de linha de comando sejam passados para dir por meio de ls.bat. Caso contrário, usando dir %1, no máximo, você só pode usar um argumento ao usar o script ls.
Adaline Simonian
2
@Vartan é uma pena que seu comentário seja o primeiro abaixo do limite "mostrar mais". Esperamos que @secghost veja isso e modifique sua resposta algum dia. Eu gostaria de acrescentar que fazer @dir %*também removerá a linha extra para que seja ainda mais idêntica adir
Captain Man
1
@CaptainMan Oh, sim! Esqueci totalmente @; bit bacana de sintaxe para usar para evitar uma confusão de saída. Porém, seria muito mais fácil se o Windows fosse compatível com POSIX. Pelo menos podemos sonhar.
Ótima sugestão que dá acesso à funcionalidade completa de lstodos os seus argumentos opcionais. Apenas uma pequena atualização, instalei a versão mais recente do git para windows e o ls.exe agora pode ser encontrado em C: \ Arquivos de programas \ Git \ usr \ bin
phil
Sim, ou apenas inicie bash.exe na pasta git (em vez de cmd) e desfrute de um shell ~ completo (com ls).
Johan
git bash é horrível, gosto da opção path
diz
16
Eu tenho uma solução, mas está suja:
Crie um arquivo chamado ls.bat contendo apenas "dir".
Coloque-o em C: \ windows \ system32 (ou qualquer diretório em PATH env var).
Instale a versão de 32 ou 64 bits para o seu sistema. As configurações e pacotes padrão devem incluir o que você precisa para que você não precise alterar nada quando chegar à tela de pacotes.
Após a instalação, copie o caminho da pasta Cygwin para as variáveis do caminho do ambiente. Por exemplo; se você instalou o cygwin em C: \ Cygwin, adicionará o seguinte às variáveis de caminho do sistema de ambiente:
; C: \ Cygwin \ bin
No meu sistema instalei a versão de 64 bits e o nome e caminho da pasta padrão era C: \ cygwin64. Então, adicionei o seguinte às variáveis de caminho de ambiente do meu sistema:
; C: \ cygwin64 \ bin
Reinicie seu terminal se estiver aberto. Em seguida, digite ls e você verá uma lista de diretórios.
Veja o seguinte se você não estiver familiarizado com a configuração de variáveis de ambiente PATH:
você também pode usar o cygwin e apenas usar o comando ls diretamente junto com todas as outras ferramentas de linha de comando do Unix com as quais você está acostumado.
Torne o comando persistente gravando-o em um arquivo .bat / .cmd e adicione o caminho do arquivo ao registro.
Por exemplo, seu comando pode parecer DOSKEY ls=dir DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $* $*útil para comandos que usam argumentos. Por exemplo, aqui gosto de poder fazer sublime my_code.c.
O registro para cmd está em HKEY_CURRENT_USER -> Software -> Microsoft -> Processador de Comando. Crie uma entrada com valor de string chamada AutoRun com o caminho completo do arquivo (não a pasta que o contém), como%USERPROFILE%\custom_command.cmd . Então, cada vez que cmd for executado, seu comando será carregado!
Você pode adicionar mais coisas úteis ao arquivo em lote também. Veja aqui um modelo de exemplo.
Certamente ls não funcionaria como um comando unix para os lotes. Se você verificar% 1 para -l ou -a etc. e todas as combinações deles, funcionaria ...
TL; DR : aprovado/K path/to/custom/init_cmd.bat para o comando de "inicialização do shell".
Estou usando o ConsoleZ como meu invólucro de shell, então, no meu caso, posso encontrar a opção de configuração em "guias", então defino o caminho do shell para "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""assim .
Onde C:\cmd_init.batestá o script em lote que contém minhas macros? Aqui está o que eu escolheria:
@echo off
doskey ls=dir /b
rem other macro stuff..
Desculpem a formatação e outros erros, é a primeira vez que respondo aqui. Espero que ajude!
Respostas:
Você poderia:
ls.bat
e faça com que ele contenha odir
apenas comandols.bat
arquivo existe à suaPATH
variável de ambienteVocê pode então executar a
ls
partir de um prompt de comando.fonte
ls dir
:? Eu acho que você precisaria modificar ols.bat
para lidar com args ... ou você pode tentar aliases: superuser.com/questions/49170/create-an-alias-in-windows-xpVocê pode resolver esta questão com um comando simples:
Certifique-se de executar
cmd.exe
como administrador primeiro se estiver no Vista e superiorfonte
dir %*
vez disso para permitir que qualquer número de argumentos de linha de comando sejam passados para dir por meio de ls.bat. Caso contrário, usandodir %1
, no máximo, você só pode usar um argumento ao usar o script ls.@dir %*
também removerá a linha extra para que seja ainda mais idêntica adir
@
; bit bacana de sintaxe para usar para evitar uma confusão de saída. Porém, seria muito mais fácil se o Windows fosse compatível com POSIX. Pelo menos podemos sonhar.É uma pergunta antiga, mas para registro:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Dá a você ls e muito mais!
fonte
ls *
edir *
não faça a mesma coisa, então aliasing dir é um pouco ofensivo.C:\Program Files (x86)\GnuWin32\bin
ao seu caminhoA maneira mais fácil que encontrei é:
bin
diretório do Git à sua variável Path. O meu estava localizado emC:\Program Files\Git\usr\bin
.ls
em toda a sua glória.fonte
ls
todos os seus argumentos opcionais. Apenas uma pequena atualização, instalei a versão mais recente do git para windows e o ls.exe agora pode ser encontrado em C: \ Arquivos de programas \ Git \ usr \ binEu tenho uma solução, mas está suja:
Crie um arquivo chamado ls.bat contendo apenas "dir".
Coloque-o em C: \ windows \ system32 (ou qualquer diretório em PATH env var).
Isso (deve) funcionar!
Editar: algo mais consistente: /superuser/49170/create-an-alias-in-windows-xp
fonte
Se você tiver Node.js instalado em seu sistema, pode instalá-lo do Cash , uma biblioteca que escrevi para comandos do Linux no Windows:
fonte
npm install cash-global -g
. Seria ótimo adicionar tambémls -l
comoll
(LL).O prompt de comando do Windows para Vista / 7 permitirá links simbólicos NTFS, execute cmd.exe como administrador e:
Em seguida, configure sua variável de ambiente PATH para incluir a localização do link que você acabou de criar.
Se você quiser mais do que apenas o comando 'ls', você deve procurar no cygwin .
EDIT- Acabo de perceber que
dir.exe
não é um programa separado, então isso realmente não funciona. Masmklink
e cygwin são coisas boas para se saber.fonte
+1 no post acima sugerindo instalar o git para windows e adicionar o diretório bin às suas variáveis de caminho.
Outra maneira que obtive touch, ls e muitos outros comandos UNIX funcionando em cmd.exe em minhas máquinas Windows 8 e Windows 7.
Vá para o seguinte site para instalar o Cygwin
https://www.cygwin.com/install.html
Instale a versão de 32 ou 64 bits para o seu sistema. As configurações e pacotes padrão devem incluir o que você precisa para que você não precise alterar nada quando chegar à tela de pacotes.
Após a instalação, copie o caminho da pasta Cygwin para as variáveis do caminho do ambiente. Por exemplo; se você instalou o cygwin em C: \ Cygwin, adicionará o seguinte às variáveis de caminho do sistema de ambiente:
; C: \ Cygwin \ bin
No meu sistema instalei a versão de 64 bits e o nome e caminho da pasta padrão era C: \ cygwin64. Então, adicionei o seguinte às variáveis de caminho de ambiente do meu sistema:
; C: \ cygwin64 \ bin
Reinicie seu terminal se estiver aberto. Em seguida, digite ls e você verá uma lista de diretórios.
Veja o seguinte se você não estiver familiarizado com a configuração de variáveis de ambiente PATH:
Link de superusuário 1
Link de superusuário 2
fonte
Se você apenas deseja que o cmd seja reconhecido
ls
como um alias paradir
, você pode usar odoskey
comando ( desta resposta em superusuário ).Isso não altera a manipulação dos parâmetros da linha de comando original do comando dir.
fonte
você também pode usar o cygwin e apenas usar o comando ls diretamente junto com todas as outras ferramentas de linha de comando do Unix com as quais você está acostumado.
fonte
meu ls.bat estava abaixo
que pode transferir cli args
coloque-o em% windir% ou qualquer diretório em sua variável% PATH%.
Apenas certifique-se de salvar o arquivo com codificação ANSI :)
fonte
Eu recomendo a seguinte receita.
DOSKEY
e$*
para criar seuls
comando.Por exemplo, seu comando pode parecer
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
útil para comandos que usam argumentos. Por exemplo, aqui gosto de poder fazersublime my_code.c
.O registro para cmd está em HKEY_CURRENT_USER -> Software -> Microsoft -> Processador de Comando. Crie uma entrada com valor de string chamada AutoRun com o caminho completo do arquivo (não a pasta que o contém), como
%USERPROFILE%\custom_command.cmd
. Então, cada vez que cmd for executado, seu comando será carregado!Você pode adicionar mais coisas úteis ao arquivo em lote também. Veja aqui um modelo de exemplo.
fonte
Outra solução que funcionou para mim é usar UnxUtils , que adiciona vários utilitários de arquivos executáveis (incluindo
ls
,sed
egrep
).Para usar: baixe o código-fonte . Descompactar. Adicione o
UnxUtils\usr\local\wbin
caminho à variável PATH do Windows. Inicie uma nova instância CMD.fonte
Certamente ls não funcionaria como um comando unix para os lotes. Se você verificar% 1 para -l ou -a etc. e todas as combinações deles, funcionaria ...
fonte
Você pode seguir este guia: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : aprovado
/K path/to/custom/init_cmd.bat
para o comando de "inicialização do shell".Estou usando o ConsoleZ como meu invólucro de shell, então, no meu caso, posso encontrar a opção de configuração em "guias", então defino o caminho do shell para
"C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
assim .Onde
C:\cmd_init.bat
está o script em lote que contém minhas macros? Aqui está o que eu escolheria:Desculpem a formatação e outros erros, é a primeira vez que respondo aqui. Espero que ajude!
fonte
Alguém que usa o subsistema Linux para Windows pode ligar
ls
do bash Linux. O seguinte comando cria ols
comando em System32:(O recurso do subsistema Linux deve ser ativado / instalado primeiro)
fonte
Aqui está meu código-fonte C # e binário .
Basta adicionar ls.exe em algum lugar e adicionar o caminho à variável de ambiente do caminho.
fonte