¿Cuál es el equivalente del comando de búsqueda de Unix en Windows?
Veo que find.exe
en Windows es más como un grep
. Estoy especialmente interesado en el equivalente de
find . -name [filename]
¿Cuál es el equivalente del comando de búsqueda de Unix en Windows?
Veo que find.exe
en Windows es más como un grep
. Estoy especialmente interesado en el equivalente de
find . -name [filename]
Respuestas:
- alternativa -
ejemplo
- alternativa -
fuente
dir c: /s example.txt
también funciona.dir /s C:\example.txt
está.\b
para breve (solo rutas de salida);find <folder> -name <pattern>
->dir /s /b <folder><pattern>
. Por ejemplo,find /tmp -name *.txt
->dir \s \b C:\temp\*.txt
. Sin embargo,dir
siempre devuelve una lista de rutas absolutas, mientras quefind
siempre proporciona rutas con el prefijo<folder>
El
Find-ChildItem
Cmdlet en Windows Powershell es un equivalente del comando de búsqueda de Unix / Linuxhttp://windows-powershell-scripts.blogspot.in/2009/08/unix-linux-find-equivalent-in.html
Algunas de las opciones Find-ChildItem
Find-ChildItem -Type f -Name ".*.exe"
Find-ChildItem -Type f -Name "\.c$" -Exec "Get-Content {} | Measure-Object -Line -Character -Word"
Find-ChildItem -Type f -Empty
Find-ChildItem -Type f -Empty -OutObject
Find-ChildItem -Type f -Empty -Delete
Find-ChildItem -Type f -Size +9M -Delete
Find-ChildItem -Type d
Find-ChildItem -Type f -Size +50m -WTime +5 -MaxDepth 1 -Delete
Divulgación: soy el desarrollador de
Find-ChildItem
cmdletfuente
Find-ChildItem
no es un cmdlet oficial y no está incluido en PowerShell; tienes que descargar este cmdlet del OneDrive de algún chico . No hay diferencia entre eso y solo descargar bash, cygwin, unixutils o cualquier otro programa que simplemente te permita ejecutar UNIXfind
.Sin cmdlets adicionales instalados, simplemente puede usar
Get-ChildItem
:fuente
dir
,ls
ogci
, a menos que esté escribiendo un script.Si está utilizando la búsqueda de Unix para buscar archivos en una jerarquía de directorios, la forma de Powershell es usar el cmdlet
Get-ChildItem
(alias isgci
) y filtrar los resultados con el cmdletWhere-Object
(alias iswhere
).Por ejemplo, para buscar todos los archivos (comenzando
C:\Users\
y de forma recursiva) con la palabra 'esencial' en su nombre, use lo siguiente:La
-like
opción le permite usar comodines para la coincidencia de patrones.fuente
Este no es exactamente el hallazgo de GNU, pero coincide más estrechamente con la filosofía de la línea de comando de Linux en powershell:
Ejemplo:
Nota: Todo lo que se devuelve después de "|% FullName" es una cadena, en lugar de un objeto.
También puede usar el Operador Where, "?", Sin embargo, es más trabajo y no mucho más rápido:
Aquí hay un atajo rápido:
fuente