Voglio usare ls nel prompt dei comandi di Windows e fargli eseguire il comando dir.
Come lo posso fare?
Voglio usare ls nel prompt dei comandi di Windows e fargli eseguire il comando dir.
Come lo posso fare?
Risposte:
Potresti:
ls.bat
e fare in modo che contenga dir
solo il comandols.bat
esiste il file alla tua PATH
variabile d'ambienteÈ quindi possibile eseguire ls
da un prompt dei comandi.
ls dir
? Penso che dovresti modificare ls.bat
per gestire gli argomenti ... oppure potresti provare gli alias: superuser.com/questions/49170/create-an-alias-in-windows-xp
Puoi risolvere questa domanda con un semplice comando:
echo @dir %* > %systemroot%\system32\ls.bat
Assicurati di eseguire cmd.exe
prima come amministratore se sei su Vista e versioni successive
dir %*
invece di usare per consentire il passaggio di un numero qualsiasi di argomenti della riga di comando a dir tramite ls.bat. Altrimenti, usando dir %1
, al massimo puoi usare solo un argomento quando usi lo script ls.
@dir %*
rimuoverà anche la linea extra, quindi è ancora più identica adir
@
; nifty bit di sintassi da usare per evitare un pasticcio di output. Tuttavia, sarebbe molto più semplice se Windows fosse conforme a POSIX. Almeno possiamo sognare.
È una vecchia domanda ma per la cronaca:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Ti dà ls e molto altro ancora!
ls *
e dir *
non fare la stessa cosa, quindi l'aliasing dir è un po 'pantaloni.
C:\Program Files (x86)\GnuWin32\bin
al tuo percorso
Il modo più semplice che ho trovato è:
bin
directory di Git alla tua variabile Path. Il mio si trovava a C:\Program Files\Git\usr\bin
.ls
in tutto il suo splendore.ls
e tutti i suoi argomenti opzionali. Solo un leggero aggiornamento, ho installato l'ultima versione di git per Windows e ls.exe ora può essere trovato in C: \ Programmi \ Git \ usr \ bin
Ho una soluzione ma è sporca:
Crea un file chiamato ls.bat contenente solo "dir".
Mettilo in C: \ windows \ system32 (o qualsiasi directory in PATH env var).
Questo (dovrebbe) funziona!
Modifica: qualcosa di più coerente: /superuser/49170/create-an-alias-in-windows-xp
Se hai Node.js installato sul tuo sistema, puoi installarlo da Cash , una libreria che ho scritto per i comandi Linux su Windows:
npm install cash-ls -g
npm install cash-global -g
. Sarebbe bello aggiungere anche ls -l
come ll
(LL).
Il prompt dei comandi di Windows per Vista / 7 consentirà collegamenti simbolici NTFS, eseguire cmd.exe come amministratore quindi:
mklink ls %System%\dir.exe
Quindi imposta la tua variabile d'ambiente PATH per includere la posizione del collegamento appena creato.
Se vuoi qualcosa di più del comando "ls", dovresti esaminare cygwin .
EDIT- Ho appena realizzato che dir.exe
non è un programma separato, quindi questo non funziona davvero. Ma mklink
e cygwin sono cose buone da sapere.
+1 sul post sopra che suggerisce di installare git per Windows e aggiungere la directory bin alle variabili del percorso.
Un altro modo in cui ho ottenuto touch, ls e molti altri comandi UNIX che funzionano in cmd.exe sulle mie macchine Windows 8 e Windows 7.
Vai al seguente sito per installare Cygwin
https://www.cygwin.com/install.html
Installa la versione a 32 o 64 bit per il tuo sistema. Le impostazioni ei pacchetti predefiniti dovrebbero includere ciò di cui hai bisogno in modo da non dover modificare nulla una volta arrivato alla schermata dei pacchetti.
Dopo l'installazione, copia il percorso della cartella Cygwin nelle variabili del percorso dell'ambiente. Per esempio; se hai installato cygwin in C: \ Cygwin, aggiungerai quanto segue alle variabili del percorso di sistema dell'ambiente:
; C: \ Cygwin \ bin
Sul mio sistema ho installato la versione a 64 bit e il nome e il percorso della cartella di default erano C: \ cygwin64. Quindi ho aggiunto quanto segue alle variabili del percorso dell'ambiente di sistema:
; C: \ cygwin64 \ bin
Riavvia il tuo terminale se è aperto. Quindi digita ls e vedrai un elenco di directory.
Vedere quanto segue se non si ha familiarità con l'impostazione delle variabili d'ambiente PATH:
Se vuoi solo che cmd riconosca ls
come alias per dir
, puoi usare il doskey
comando (da questa risposta su superuser ).
Ciò non modifica la gestione dei parametri della riga di comando originale del comando dir.
Consiglio la seguente ricetta.
DOSKEY
e $*
per creare il tuo ls
comando.Ad esempio, il tuo comando potrebbe sembrare
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
utile per i comandi che accettano argomenti. Ad esempio, qui mi piace essere in grado di fare sublime my_code.c
.
Il registro di cmd si trova in HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor. Crea una voce con valori di stringa chiamata AutoRun con il percorso completo del file (non la cartella che lo contiene) come%USERPROFILE%\custom_command.cmd
. Quindi ogni volta che cmd viene eseguito, il tuo comando verrà caricato!
Puoi anche aggiungere elementi più utili al file batch. Vedi qui per un modello di esempio.
Un'altra soluzione che ha funzionato per me è quello di utilizzare UnxUtils , che aggiunge molteplici utilità da file eseguibili (tra cui ls
, sed
, e grep
).
Per usare: scarica il codice sorgente . Unzip. Aggiungi il UnxUtils\usr\local\wbin
percorso alla variabile PATH di Windows. Avvia una nuova istanza CMD.
Sicuramente ls non funzionerebbe come comando unix per i batch. Se controlli% 1 per -l o -a ecc. E tutte le loro combinazioni, funzionerebbe ...
Puoi seguire questa guida: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : superato/K path/to/custom/init_cmd.bat
al comando di "avvio della shell".
Sto usando ConsoleZ come wrapper della shell, quindi nel mio caso posso trovare l'opzione di configurazione in "tabs", quindi ho impostato il percorso della shell in "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
questo modo .
Dov'è C:\cmd_init.bat
lo script batch contenente le mie macro, ecco cosa sceglierei:
@echo off
doskey ls=dir /b
rem other macro stuff..
Ci scusiamo per la formattazione e altri errori, questa è la prima volta che rispondo qui. Spero possa essere d'aiuto!
Qualcuno che usa il sottosistema Linux per Windows potrebbe chiamare ls
dalla bash di Linux. Il seguente comando crea il ls
comando in System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(La funzione Sottosistema Linux deve essere abilitata / installata prima)
Ecco il mio codice sorgente C # e binario .
Basta aggiungere ls.exe da qualche parte e aggiungere il percorso alla variabile di ambiente del percorso.