web-dev-qa-db-fra.com

Comment créer ls dans l'invite de commande Windows?

Je veux utiliser ls dans l'invite de commande Windows et lui faire exécuter la commande dir.

Comment puis je faire ça?

109
aF.

Vous pourriez:

  • créer un fichier de commandes appelé ls.bat et le contenir uniquement avec la commande dir
  • ajoutez le répertoire où le fichier ls.bat existe à votre variable d'environnement PATH

Vous pouvez ensuite exécuter ls à partir d'une invite de commande.

115
hmjd

Vous pouvez résoudre cette question avec une simple commande:

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

Assurez-vous d’exécuter cmd.exe en tant qu’administrateur d’abord si vous utilisez Vista ou une version ultérieure.

228
secghost

C'est une vieille question mais pour le compte rendu:

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

Vous donne ls et beaucoup plus!

34
sipi

Le moyen le plus simple que j'ai trouvé est:

  1. Installer Git pour Windows
  2. Ajoutez le répertoire bin de Git à votre variable Path. La mine était située à C:\Program Files\Git\usr\bin.
  3. Lancez une invite de commande et profitez de ls dans toute sa splendeur.
17
varagrawal

J'ai une solution mais c'est sale:

Créez un fichier nommé ls.bat contenant uniquement "dir".

Mettez-le dans C:\windows\system32 (ou n’importe quel répertoire dans PATH env var).

Cela (devrait) fonctionne!

Edit: Quelque chose de plus cohérent: https://superuser.com/questions/49170/create-an-alias-in-windows-xp

15
STM

Si Node.js est installé sur votre système, vous pouvez l’installer à partir de Cash , une bibliothèque que j’ai écrite pour les commandes Linux sous Windows:

npm install cash-ls -g
9
dthree

La commande Windows Invite pour Vista/7 autorisera les liens symboliques NTFS, exécutez cmd.exe en tant qu'administrateur, puis:

mklink ls %System%\dir.exe

Configurez ensuite votre variable d’environnement PATH pour inclure l’emplacement du lien que vous venez de créer.

Si vous voulez plus que la commande 'ls', vous devriez regarder cygwin .

EDIT- Je viens de réaliser dir.exe n'est pas un programme séparé, donc cela ne fonctionne pas vraiment. Mais mklink et cygwin sont des informations utiles.

6
buster

+1 sur le message ci-dessus, suggérant d'installer git pour Windows et d'ajouter le répertoire bin à vos variables de chemin.

Une autre façon de me toucher, ls et beaucoup d’autres commandes UNIX fonctionnant dans cmd.exe sur mes machines Windows 8 et Windows 7.

Allez sur le site suivant pour installer Cygwin

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

Installez la version 32 ou 64 bits pour votre système. Les paramètres et les packages par défaut doivent inclure ce dont vous avez besoin afin que vous n'ayez rien à changer une fois sur l'écran des packages.

Après l’installation, copiez le chemin du dossier Cygwin dans les variables de votre chemin d’environnement. Par exemple; Si vous avez installé cygwin dans C:\Cygwin, vous ajouterez les éléments suivants aux variables de chemin d'accès de votre environnement:

; C:\Cygwin\bin

Sur mon système, j'ai installé la version 64 bits et le nom et le chemin du dossier par défaut étaient C:\cygwin64. J'ai donc ajouté les éléments suivants aux variables de chemin d'accès de mon environnement système:

; C:\cygwin64\bin

Redémarrez votre terminal s'il est ouvert. Ensuite, tapez ls et vous verrez une liste de répertoires.

Consultez la section suivante si vous n'êtes pas familier avec la définition de variables d'environnement PATH:

lien superutilisateur 1

lien superutilisateur 2

4
jtlindsey

mon ls.bat était en dessous

@dir %*

qui peut transférer des arguments de cli

ls /b
ls /w

mettez-le dans% windir% ou dans n'importe quel répertoire de votre variable% PATH%.

Assurez-vous simplement de sauvegarder le fichier avec l'encodage ANSI :)

3
IlPADlI

vous pouvez également utiliser cygwin et utiliser la commande ls directement avec tous les autres outils de ligne de commande Unix auxquels vous êtes peut-être habitué.

3
Nerdtron

Si vous voulez juste que cmd reconnaisse ls comme un alias pour dir, vous pouvez utiliser la commande doskey (de cette réponse sur superutilisateur ).

Cela ne modifie pas le traitement des paramètres de ligne de commande d'origine de la commande dir.

3
devio

Une autre solution qui a fonctionné pour moi consiste à utiliser nxUtils , qui ajoute plusieurs utilitaires à partir de fichiers exécutables (notamment ls, sed et grep).

Pour utiliser: télécharger code source . Décompressez. Ajoutez le chemin UnxUtils\usr\local\wbin à la variable Windows PATH. Démarrer une nouvelle instance CMD.

2
Bird

Je recommande la recette suivante.

  1. Utilisez DOSKEY et $* pour créer votre commande ls.
  2. Rendez la commande persistante en l'enregistrant dans un fichier .bat/.cmd et ajoutez le chemin du fichier au registre.

Par exemple, votre commande peut ressembler à
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$* est utile pour les commandes utilisant des arguments. Par exemple, ici, j'aime bien pouvoir faire sublime my_code.c.

Le registre pour cmd se trouve à l'adresse HKEY_CURRENT_USER -> Logiciel -> Microsoft -> Processeur de commandes. Créez une entrée de chaîne appelée AutoRun avec le chemin d'accès complet du fichier (pas le dossier contenant), tel que %USERPROFILE%\custom_command.cmd. Alors chaque fois que cmd est lancé, votre commande sera chargée!

Vous pouvez également ajouter d'autres éléments utiles au fichier de commandes. Voir ici pour un exemple de modèle.

1
Argyll

Vous pouvez suivre ce guide: https://Gist.github.com/vladikoff/38307908088d58af206b

TL; DR : transmettez /K path/to/custom/init_cmd.bat à votre commande "Démarrage du shell".

J'utilise ConsoleZ comme enveloppe pour le shell, donc dans mon cas, je peux trouver l'option d'installation dans les "onglets", puis je règle le chemin du shell sur "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""comme ceci .

C:\cmd_init.bat est le script de traitement par lots contenant mes macros, voici ce que je rechercherais:

@echo off

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

Désolé pour le formatage et d’autres erreurs, c’est la première fois que je réponds ici. J'espère que ça aide!

0
jred_kai

Quelqu'un qui utilise le sous-système Linux pour Windows pourrait appeler ls à partir du bash Linux. La commande suivante crée la commande ls dans System32:

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

(La fonctionnalité de sous-système Linux doit d'abord être activée/installée)

0
A. Markóczy

Certes, ls ne fonctionnerait pas comme une commande unix pour les lots. Si vous vérifiez% 1 pour -l ou -a etc. et toutes leurs combinaisons, cela fonctionnera ...

0
docowhocool