Certaines des réponses sont assez intéressantes, mais qu'est-ce qui ne va pas exactement avec la commande «dir»?
Matt Donnan
3
@MattDonnan Je suis juste habitué à ls et je fais une drôle de tête quand je le fais sur windows.
Plus maintenant
1
@DavidHeffernan parce qu'il n'existe pas dans Windows?
aF.
1
Bien sûr que oui. Je l'utilise tous les jours.
David Heffernan
1
@un F. J'utilise Windows 7, mais j'exécute ls sur n'importe quelle version de Windows. Je ne dis pas que Windows est livré avec les ls, mais simplement qu'il est open source et qu'il a de bons ports Windows, il est trivial de l'exécuter sur Windows. Regardez GnuWin32.
David Heffernan
Réponses:
117
Vous pourriez:
créer un fichier batch appelé ls.batet le faire contenir diruniquement la commande
ajoutez le répertoire dans lequel le ls.batfichier existe à votre PATHvariable d'environnement
Vous pouvez ensuite exécuter à lspartir d'une invite de commande.
pourquoi ne pas mettre le ls.bat dans le dossier system32 pour ne pas avoir à ajouter le PATH
David 天宇 Wong
2
@David 天宇 Wong, il est très possible que l'utilisateur n'ait pas accès en écriture à ce dossier.
hmjd
2
fait ce travail encore si vous l' utilisez avec args: ls dir? Je pense que vous auriez besoin de modifier le ls.batpour gérer les arguments ... ou vous pouvez essayer les alias: superuser.com/questions/49170/create-an-alias-in-windows-xp
nicorellius
J'aime: @echo off \ ndir / w% 1% pour me rapprocher du format ls
mrcrowl
excellente réponse, il ne devrait pas être possible de commenter ça ;-)
Bamboomy
248
Vous pouvez résoudre cette question avec une simple commande:
echo @dir %* > %systemroot%\system32\ls.bat
Assurez-vous que vous exécutez cmd.exed'abord en tant qu'administrateur si vous êtes sur Vista et plus
J'aurais aimé pouvoir noter cela plus d'une fois. A fonctionné à merveille.
MrHappyAsthma
4
C'est mieux car vous pouvez toujours utiliser les options dir.
ajon
17
Je recommanderais d'utiliser à la dir %*place pour permettre à n'importe quel nombre d'arguments de ligne de commande d'être transmis à dir via ls.bat. Sinon, en utilisant dir %1, au plus vous ne pouvez utiliser qu'un seul argument lorsque vous utilisez le script ls.
Adaline Simonian
2
@Vartan c'est dommage que votre commentaire soit le premier sous le seuil "Afficher plus". Espérons que @secghost verra cela et modifiera sa réponse un jour. Je voudrais ajouter que cela @dir %*supprimera également la ligne supplémentaire, donc elle est encore plus identique àdir
Captain Man
1
@CaptainMan Oh, ouais! Totalement oublié @; astuce de syntaxe à utiliser pour éviter un désordre de sortie. Cependant, ce serait tellement plus facile si Windows était compatible POSIX. Au moins on peut rêver.
Excellente suggestion qui donne accès à toutes les fonctionnalités lset à tous ses arguments optionnels. Juste une légère mise à jour, j'ai installé la dernière version de git pour Windows et le ls.exe se trouve maintenant dans C: \ Program Files \ Git \ usr \ bin
phil
Oui, ou lancez simplement bash.exe dans le dossier git (au lieu de cmd) et profitez d'un ~ shell complet (avec ls).
Johan
git bash est hideux, j'aime l'option chemin
omikes
16
J'ai une solution mais c'est sale:
Créez un fichier nommé ls.bat contenant uniquement "dir".
Placez-le dans C: \ windows \ system32 (ou n'importe quel répertoire dans PATH env var).
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:
meilleure solution jamais pour les utilisateurs de Linux sur Windows, npm install cash-global -g. Ce serait bien d'ajouter ls -laussi ll(LL).
user2925656
C'est un compagnon sauveur
HebleV
6
L'invite de commande Windows 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 dans cygwin .
EDIT - Je viens de réaliser dir.exen'est pas un programme séparé, donc cela ne fonctionne pas vraiment. Mais mklinket cygwin sont de bonnes choses à savoir.
Installez la version 32 ou 64 bits de votre système. Les paramètres par défaut et les packages doivent inclure ce dont vous avez besoin pour que vous n'ayez rien à changer une fois que vous arrivez à l'écran des packages.
Après l'installation, copiez le chemin du dossier Cygwin dans vos variables de chemin d'environnement. Par exemple; si vous avez installé cygwin dans C: \ Cygwin, vous ajouterez les éléments suivants aux variables de chemin système 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é ce qui suit à mes variables de chemin d'environnement système:
; C: \ cygwin64 \ bin
Redémarrez votre terminal s'il est ouvert. Tapez ensuite ls et vous verrez une liste de répertoires.
Consultez ce qui suit si vous n'êtes pas familiarisé avec la définition des variables d'environnement PATH:
Si vous souhaitez simplement que cmd soit reconnu lscomme un alias pour dir, vous pouvez utiliser la doskeycommande (à partir de cette réponse sur le superutilisateur ).
Cela ne modifie pas la gestion des paramètres de ligne de commande d'origine de la commande dir.
vous pouvez également utiliser cygwin et simplement utiliser la commande ls directement avec tous les autres outils de ligne de commande unix auxquels vous pourriez être habitué.
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 sembler DOSKEY ls=dir DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $* $*utile pour les commandes qui prennent des arguments. Par exemple, ici, j'aime pouvoir faire sublime my_code.c.
Le registre de cmd est à HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor. Créez une entrée de valeur de chaîne appelée AutoRun avec le chemin complet du fichier (pas le dossier contenant) tel que%USERPROFILE%\custom_command.cmd . Ensuite, chaque fois que cmd est exécuté, votre commande sera chargée!
Vous pouvez également ajouter des éléments plus utiles au fichier de commandes. Voir ici pour un exemple de modèle.
Une autre solution qui a fonctionné pour moi est d'utiliser UnxUtils , qui ajoute plusieurs utilitaires à partir de fichiers exécutables (y compris ls, sedet grep).
Pour utiliser: téléchargez le code source . Décompressez. Ajoutez le UnxUtils\usr\local\wbinchemin d'accès à la variable Windows PATH. Démarrez une nouvelle instance CMD.
Ls ne fonctionnerait sûrement pas comme une commande unix pour les lots. Si vous vérifiez% 1 pour -l ou -a etc. et toutes leurs combinaisons, cela fonctionnerait ...
TL; DR : passez /K path/to/custom/init_cmd.batà votre commande "shell startup".
J'utilise ConsoleZ comme enveloppe de shell, donc dans mon cas, je peux trouver l'option de configuration dans "onglets", puis j'ai défini le chemin du shell "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""comme ceci .
Où C:\cmd_init.batest le script batch contenant mes macros, voici ce que je ferais:
@echo off
doskey ls=dir /b
rem other macro stuff..
Désolé pour le formatage et autres erreurs, c'est la première fois que je réponds ici. J'espère que ça aide!
Réponses:
Vous pourriez:
ls.bat
et le faire contenirdir
uniquement la commandels.bat
fichier existe à votrePATH
variable d'environnementVous pouvez ensuite exécuter à
ls
partir d'une invite de commande.la source
ls dir
? Je pense que vous auriez besoin de modifier lels.bat
pour gérer les arguments ... ou vous pouvez essayer les alias: superuser.com/questions/49170/create-an-alias-in-windows-xpVous pouvez résoudre cette question avec une simple commande:
Assurez-vous que vous exécutez
cmd.exe
d'abord en tant qu'administrateur si vous êtes sur Vista et plusla source
dir %*
place pour permettre à n'importe quel nombre d'arguments de ligne de commande d'être transmis à dir via ls.bat. Sinon, en utilisantdir %1
, au plus vous ne pouvez utiliser qu'un seul argument lorsque vous utilisez le script ls.@dir %*
supprimera également la ligne supplémentaire, donc elle est encore plus identique àdir
@
; astuce de syntaxe à utiliser pour éviter un désordre de sortie. Cependant, ce serait tellement plus facile si Windows était compatible POSIX. Au moins on peut rêver.C'est une vieille question mais pour mémoire:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Vous donne des ls et bien plus encore!
la source
ls *
etdir *
ne faites pas la même chose, donc aliaser dir est un peu pantalons.C:\Program Files (x86)\GnuWin32\bin
à votre cheminLe moyen le plus simple que j'ai trouvé est:
bin
répertoire de Git à votre variable Path. Le mien était situé àC:\Program Files\Git\usr\bin
.ls
dans toute sa splendeur.la source
ls
et à tous ses arguments optionnels. Juste une légère mise à jour, j'ai installé la dernière version de git pour Windows et le ls.exe se trouve maintenant dans C: \ Program Files \ Git \ usr \ binJ'ai une solution mais c'est sale:
Créez un fichier nommé ls.bat contenant uniquement "dir".
Placez-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: /superuser/49170/create-an-alias-in-windows-xp
la source
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:
la source
npm install cash-global -g
. Ce serait bien d'ajouterls -l
aussill
(LL).L'invite de commande Windows pour Vista / 7 autorisera les liens symboliques NTFS, exécutez cmd.exe en tant qu'administrateur puis:
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 dans cygwin .
EDIT - Je viens de réaliser
dir.exe
n'est pas un programme séparé, donc cela ne fonctionne pas vraiment. Maismklink
et cygwin sont de bonnes choses à savoir.la source
+1 sur le post ci-dessus suggérant d'installer git pour Windows et d'ajouter le répertoire bin à vos variables de chemin.
Une autre façon dont j'ai obtenu touch, 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 de votre système. Les paramètres par défaut et les packages doivent inclure ce dont vous avez besoin pour que vous n'ayez rien à changer une fois que vous arrivez à l'écran des packages.
Après l'installation, copiez le chemin du dossier Cygwin dans vos variables de chemin d'environnement. Par exemple; si vous avez installé cygwin dans C: \ Cygwin, vous ajouterez les éléments suivants aux variables de chemin système 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é ce qui suit à mes variables de chemin d'environnement système:
; C: \ cygwin64 \ bin
Redémarrez votre terminal s'il est ouvert. Tapez ensuite ls et vous verrez une liste de répertoires.
Consultez ce qui suit si vous n'êtes pas familiarisé avec la définition des variables d'environnement PATH:
Lien superutilisateur 1
Lien superutilisateur 2
la source
Si vous souhaitez simplement que cmd soit reconnu
ls
comme un alias pourdir
, vous pouvez utiliser ladoskey
commande (à partir de cette réponse sur le superutilisateur ).Cela ne modifie pas la gestion des paramètres de ligne de commande d'origine de la commande dir.
la source
vous pouvez également utiliser cygwin et simplement utiliser la commande ls directement avec tous les autres outils de ligne de commande unix auxquels vous pourriez être habitué.
la source
mon ls.bat était en dessous
qui peut transférer des arguments cli
placez-le dans% windir% ou dans n'importe quel répertoire de votre variable% PATH%.
Assurez-vous simplement de sauvegarder le fichier avec un encodage ANSI :)
la source
Je recommande la recette suivante.
DOSKEY
et$*
pour créer votrels
commande.Par exemple, votre commande peut sembler
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
utile pour les commandes qui prennent des arguments. Par exemple, ici, j'aime pouvoir fairesublime my_code.c
.Le registre de cmd est à HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor. Créez une entrée de valeur de chaîne appelée AutoRun avec le chemin complet du fichier (pas le dossier contenant) tel que
%USERPROFILE%\custom_command.cmd
. Ensuite, chaque fois que cmd est exécuté, votre commande sera chargée!Vous pouvez également ajouter des éléments plus utiles au fichier de commandes. Voir ici pour un exemple de modèle.
la source
Une autre solution qui a fonctionné pour moi est d'utiliser UnxUtils , qui ajoute plusieurs utilitaires à partir de fichiers exécutables (y compris
ls
,sed
etgrep
).Pour utiliser: téléchargez le code source . Décompressez. Ajoutez le
UnxUtils\usr\local\wbin
chemin d'accès à la variable Windows PATH. Démarrez une nouvelle instance CMD.la source
Ls ne fonctionnerait sûrement pas comme une commande unix pour les lots. Si vous vérifiez% 1 pour -l ou -a etc. et toutes leurs combinaisons, cela fonctionnerait ...
la source
Vous pouvez suivre ce guide: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : passez
/K path/to/custom/init_cmd.bat
à votre commande "shell startup".J'utilise ConsoleZ comme enveloppe de shell, donc dans mon cas, je peux trouver l'option de configuration dans "onglets", puis j'ai défini le chemin du shell
"C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
comme ceci .Où
C:\cmd_init.bat
est le script batch contenant mes macros, voici ce que je ferais:Désolé pour le formatage et autres erreurs, c'est la première fois que je réponds ici. J'espère que ça aide!
la source
Quelqu'un qui utilise le sous-système Linux pour Windows peut appeler à
ls
partir du bash Linux. La commande suivante crée lals
commande dans System32:(La fonction de sous-système Linux doit être activée / installée en premier)
la source
Voici mon code source C # et mon binaire .
Ajoutez simplement ls.exe quelque part et ajoutez le chemin à la variable d'environnement path.
la source