Quero usar ls no prompt de comando do Windows e fazê-lo executar o comando dir.
Como eu posso fazer isso?
Quero usar ls no prompt de comando do Windows e fazê-lo executar o comando dir.
Como eu posso fazer isso?
Respostas:
Você poderia:
ls.bat
e faça com que ele contenha odir
apenas comandols.bat
arquivo existe à sua PATH
variável de ambienteVocê pode então executar a ls
partir de um prompt de comando.
ls dir
:? Eu acho que você precisaria modificar o ls.bat
para lidar com args ... ou você pode tentar aliases: superuser.com/questions/49170/create-an-alias-in-windows-xp
Você pode resolver esta questão com um comando simples:
echo @dir %* > %systemroot%\system32\ls.bat
Certifique-se de executar cmd.exe
como administrador primeiro se estiver no Vista e superior
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.
@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!
ls *
e dir *
não faça a mesma coisa, então aliasing dir é um pouco ofensivo.
C:\Program Files (x86)\GnuWin32\bin
ao seu caminho
A maneira mais fácil que encontrei é:
bin
diretório do Git à sua variável Path. O meu estava localizado em C:\Program Files\Git\usr\bin
.ls
em toda a sua glória.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 \ bin
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).
Isso (deve) funcionar!
Editar: algo mais consistente: /superuser/49170/create-an-alias-in-windows-xp
Se você tiver Node.js instalado em seu sistema, pode instalá-lo do Cash , uma biblioteca que escrevi para comandos do Linux no Windows:
npm install cash-ls -g
npm install cash-global -g
. Seria ótimo adicionar também ls -l
como ll
(LL).
O prompt de comando do Windows para Vista / 7 permitirá links simbólicos NTFS, execute cmd.exe como administrador e:
mklink ls %System%\dir.exe
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. Mas mklink
e cygwin são coisas boas para se saber.
+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:
Se você apenas deseja que o cmd seja reconhecido ls
como um alias para dir
, você pode usar o doskey
comando ( desta resposta em superusuário ).
Isso não altera a manipulação dos parâmetros da linha de comando original do comando dir.
Eu recomendo a seguinte receita.
DOSKEY
e $*
para criar seu ls
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 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.
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.
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 ...
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:
@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!
Alguém que usa o subsistema Linux para Windows pode ligar ls
do bash Linux. O seguinte comando cria o ls
comando em System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(O recurso do subsistema Linux deve ser ativado / instalado primeiro)
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.