Quiero usar ls en el símbolo del sistema de Windows y hacer que ejecute el comando dir.
¿Cómo puedo hacer eso?
Quiero usar ls en el símbolo del sistema de Windows y hacer que ejecute el comando dir.
¿Cómo puedo hacer eso?
Respuestas:
Tú podrías:
ls.bat
y haga que contenga dir
solo el comandols.bat
existe el archivo a su PATH
variable de entornoA continuación, puede ejecutar ls
desde un símbolo del sistema.
ls dir
:? Creo que tendría que modificar el ls.bat
manejar args ... o usted podría intentar alias: superuser.com/questions/49170/create-an-alias-in-windows-xp
Puede resolver esta pregunta con un simple comando:
echo @dir %* > %systemroot%\system32\ls.bat
Asegúrese de ejecutar cmd.exe
primero como administrador si está en vista y superior
dir %*
para permitir que cualquier número de argumentos de línea de comando se pasen a dir a través de ls.bat. De lo contrario, usando dir %1
, como máximo, solo puede usar un argumento cuando use el script ls.
@dir %*
también eliminará la línea adicional, por lo que es aún más idéntico adir
@
; ingeniosa sintaxis para evitar un desorden de salida. Sin embargo, sería mucho más fácil si Windows fuera compatible con POSIX. Al menos podemos soñar.
Es una vieja pregunta pero para que conste:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
¡Te da ls y mucho más!
ls *
y dir *
no hagas lo mismo, por lo que aplicar un alias a dir es un poco complicado.
C:\Program Files (x86)\GnuWin32\bin
a su ruta
La forma más fácil que he encontrado es:
bin
directorio de Git a tu variable Path. El mío estaba ubicado en C:\Program Files\Git\usr\bin
.ls
en todo su esplendor.ls
y todos sus argumentos opcionales. Solo una pequeña actualización, instalé la última versión de git para Windows y ls.exe ahora se puede encontrar en C: \ Archivos de programa \ Git \ usr \ bin
Tengo una solución pero está sucia:
Cree un archivo llamado ls.bat que contenga solo "dir".
Ponlo en C: \ windows \ system32 (o cualquier directorio en PATH env var).
¡Eso (debería) funciona!
Editar: Algo más consistente: /superuser/49170/create-an-alias-in-windows-xp
Si tiene Node.js instalado en su sistema, puede instalarlo desde Cash , una biblioteca que escribí para los comandos de Linux en Windows:
npm install cash-ls -g
npm install cash-global -g
. Sería genial agregar ls -l
como ll
(LL) también.
El símbolo del sistema de Windows para Vista / 7 permitirá enlaces simbólicos NTFS, ejecute cmd.exe como administrador y luego:
mklink ls %System%\dir.exe
Luego configure su variable de entorno PATH para incluir la ubicación del enlace que acaba de crear.
Si desea algo más que el comando 'ls', debe buscar en cygwin .
EDITAR: me acabo de dar cuenta de dir.exe
que no es un programa separado, por lo que esto realmente no funciona. Pero mklink
y cygwin son cosas buenas que debe conocer.
+1 en la publicación anterior que sugiere instalar git para Windows y agregar el directorio bin a sus variables de ruta.
Otra forma en que obtuve touch, ls y muchos otros comandos UNIX trabajando en cmd.exe en mis máquinas con Windows 8 y Windows 7.
Vaya al siguiente sitio para instalar Cygwin
https://www.cygwin.com/install.html
Instale la versión de 32 o 64 bits para su sistema. La configuración y los paquetes predeterminados deben incluir lo que necesita para que no tenga que cambiar nada una vez que llegue a la pantalla de paquetes.
Después de la instalación, copie la ruta de la carpeta Cygwin a las variables de ruta de su entorno. Por ejemplo; si instaló cygwin en C: \ Cygwin, agregará lo siguiente a las variables de ruta del sistema de su entorno:
; C: \ Cygwin \ bin
En mi sistema instalé la versión de 64 bits y el nombre de carpeta y la ruta predeterminados eran C: \ cygwin64. Así que agregué lo siguiente a las variables de ruta del entorno de mi sistema:
; C: \ cygwin64 \ bin
Reinicie su terminal si está abierto. Luego escriba ls y verá una lista de directorio.
Consulte lo siguiente si no está familiarizado con la configuración de las variables de entorno PATH:
Si solo desea que cmd reconozca ls
como un alias para dir
, puede usar el doskey
comando (de esta respuesta en superusuario ).
Esto no cambia el manejo del parámetro de línea de comando original del comando dir.
Recomiendo la siguiente receta.
DOSKEY
y $*
para crear su ls
comando.Por ejemplo, su comando puede parecer
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
útil para comandos que toman argumentos. Por ejemplo, aquí me gusta poder hacer sublime my_code.c
.
El registro de cmd está en HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor. Cree una entrada con valor de cadena denominada Ejecución automática con la ruta completa del archivo (no la carpeta que lo contiene) como %USERPROFILE%\custom_command.cmd
. Luego, cada vez que se ejecute cmd, ¡se cargará su comando!
También puede agregar más cosas útiles al archivo por lotes. Vea aquí una plantilla de ejemplo.
Otra solución que funcionó para mí es utilizar UnxUtils , lo que añade múltiples utilidades de los archivos ejecutables (incluyendo ls
, sed
y grep
).
Para usar: descargue el código fuente . Abrir la cremallera. Agregue la UnxUtils\usr\local\wbin
ruta a la variable PATH de Windows. Inicie una nueva instancia de CMD.
Seguramente ls no funcionaría como un comando de Unix para los lotes. Si marca% 1 para -l o -a, etc. y todas las combinaciones de ellos, funcionaría ...
Puede seguir esta guía: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : pase /K path/to/custom/init_cmd.bat
a su comando de "inicio de shell".
Estoy usando ConsoleZ como mi envoltorio de shell, por lo que en mi caso puedo encontrar la opción de configuración en "pestañas", luego configuro la ruta del shell de "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
esta manera .
¿Dónde C:\cmd_init.bat
está el script por lotes que contiene mis macros? Esto es lo que buscaría:
@echo off
doskey ls=dir /b
rem other macro stuff..
Perdón por el formato y otros errores, esta es la primera vez que respondo aquí. ¡Espero que ayude!
Alguien que use el Subsistema de Linux para Windows podría llamar ls
desde el bash de Linux. El siguiente comando crea el ls
comando en System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(La función del subsistema de Linux debe habilitarse / instalarse primero)
Aquí está mi código fuente y binario de C # .
Simplemente agregue ls.exe en algún lugar y agregue la ruta a la variable de entorno de ruta.