Usando la CLI de Windows (cmd), ¿cómo ubica uno un archivo del que conoce parte del nombre? Por ejemplo, cada estación de trabajo de Windows instala javac en una ubicación diferente, ¿cómo se puede encontrar desde la CLI de Windows (cmd)?
Googleo solo menciono el uso de la GUI del Explorador de Windows (administrador de archivos) o la descarga de alguna aplicación gratuita. ¿Windows realmente no tiene un comando de localización integrado? ¿Las ediciones del servidor lo tienen? Yo no quiero instalar cygwin o cualquier otra cosa, éstos normalmente no son mis máquinas.
windows
command-line
search
locate
dotancohen
fuente
fuente
javac
por lo general debería estar en el mismo lugar ...locate
yupdatedb
--per stackoverflow.com/questions/36841241/…Respuestas:
Debería poder hacer lo que necesita hacer con
dir
:Reemplace [nombre de archivo] con el nombre de archivo que está buscando, debería poder usar comodines. / s hace que busque subdirectorios, por lo que si lo necesita, puede comenzar en la raíz de C: y hacer que compruebe toda la unidad.
fuente
javac
esté instalado paraC:\WINDOWS
...¿Nadie habla sobre el comando "dónde"? busca el archivo ejecutable en la RUTA del entorno actual.
fuente
Windos tiene la respuesta más directa. Pero si eres aficionado a la línea de comandos, es posible que también quieras ver PowerShell. Para lograr el mismo tipo de búsqueda que usarías
Lo que tiene el beneficio adicional de poder ser bombeado a una práctica declaración foreach y ejecutar un proceso contra los resultados de búsqueda.
fuente
gci
ols
.cmd
,PowerShell
puedes usar "Tab" para ver sugerencias, como en Linux. Por lo tanto, no son tantos para escribir en realidad. Y, en mi caso,ls
en PowerShell no funciona.Simplemente obtuve un programa de localización para Windows . Solo necesita seguir las instrucciones de leerme y copiar los archivos .dll y .exe a system32.
La alternativa incluye agregar la ruta del programa a la variable de entorno PATH.
La idea es localizar en Windows si está buscando algo "como" localizar. :)
fuente
locate
está en mi computadora Win7. Se queja de que la base de datos tiene 435 días de antigüedad, cuando la instalación no tiene más de 3 meses. Yupdatedb
no está incluido.La pregunta es algo ambigua.
Desea ubicar un archivo (indicado en el cuerpo del OP), pero también desea un comando / aplicación "localizar-tipo" (indicado en el título). Hay una consideración sutil con enormes implicaciones. Puede ubicar con dos métodos diferentes:
Buscando la estructura de árbol de destino directamente en cada búsqueda (lenta).
Primero creando una base de datos de la estructura de árbol de destino (puede llevar mucho tiempo), y luego localizando buscando en la base de datos (muy rápido). La base de datos debe actualizarse periódicamente para obtener buenos resultados en las búsquedas. Ver http://en.wikipedia.org/wiki/Locate_%28Unix%29 .
Unix
locate
es de "tipo 2", pero según el cuerpo de su OP, estaría bien con cualquiera de los dos métodos. Además, pregunta específicamente sobre las opciones de CLI.Enumero a continuación algunas opciones, y especifico si son CLI / GUI, escribo 1/2, y agrego algunos comentarios.
http://locate32.cogit.net/ (ya señalado por John T y luego por Cheeku ). GUI, tipo 2. Hay una versión portátil. Excelente facilidad de uso y configurabilidad. Muy similar a Unix
locate
(que usé y me gustó mucho).Nota : Al estar acostumbrado a que Unix
Updatedb
tarde bastante en actualizar una base de datos (por supuesto, depende del tamaño del árbol escaneado), me parecelocate32
extremadamente rápido. No sé cómo se puede mejorar tanto.http://sourceforge.net/projects/winlocate/ CLI, tipo 2.
dir [nombre de archivo] / s , la solución de Windos . CLI, tipo 1.
gci ... , la solución de OldWolf . CLI, tipo 1.
http://gnuwin32.sourceforge.net/packages/findutils.htm CLI, tipo 2.
Todo GUI, tipo?
fuente
Creé un puerto de PowerShell para localizar y actualizarb. Utiliza SQLite como back-end y tiene un instalador automático. Sólo
las ubicaciones tardan unos 300 ms / consulta.
Luego
y estás listo
https://gallery.technet.microsoft.com/scriptcenter/Invoke-Locate-PowerShell-0aa2673a
fuente
No es necesario instalar a mano. Ver http://chocolatey.org
Reiniciar entorno de shell
fuente
Sé que esta fue respondida hace mucho tiempo, sin embargo, este es mi script para simular la función de localización utilizada en Unix / Linux
Guarde esto como localizar.bat y colóquelo en System32 O ejecute desde el directorio en el que está almacenado. Toma un parámetro como este "cmd> localizar javac.exe"
El interruptor de localizar / c (como un segundo parámetro contará el número de instancias) y localizar /? mostrará el texto de ayuda
EDITAR: (Script actualizado, más organizado y puede manejar una variedad más amplia de situaciones, como permitir cualquier término de búsqueda, no solo un nombre de archivo)
fuente
Para futuros historiadores del espacio de Windows: hemos sido bendecidos con Everything Search . Picture dmenu + find + mlocate se convirtió en un pequeño y apretado servicio de Windows con opciones de cli. Excepto que esto actualiza su índice en tiempo real . Nada en Linux se acerca. Será una de las pocas veces que dirás "caramba, desearía que este maldito núcleo fuera un poco más Microsofty".
fuente
La respuesta corta es que no hay un equivalente exacto en Windows . La solución es usar el directorio comando . Este es un comando de lista de directorio que admite caracteres especiales y se puede usar como se indica en la respuesta aceptada.
El comando Localizar en muchos sistemas similares a Unix es una búsqueda basada en índices. Funciona en conjunto con el comando Actualizadob que indexa los sistemas de archivos. Dado que es una búsqueda basada en índices, generalmente es mucho más rápido que los comandos de búsqueda basados en texto, como dir y find en Unix, especialmente cuando se buscan jerarquías de directorios profundas.
fuente
where
Es el equivalente exacto.No conozco ningún método de CLI para hacer esto en Windows. Tenga en cuenta que la CLI de Windows ha sido abandonada por usuarios comunes, por lo que ofrece un conjunto de herramientas generalmente menos maduro. Su mejor opción podría ser usar el gnu
find
en Windows, que puede obtener de GnuWin32 . Si está desarrollando un script, solo tendría que incluirfind.exe
y sus dependencias con el script (no se preocupe, no es muy grande).fuente