67 votes

Equivalent de la commande Unix find sous Windows

Quel est l'équivalent du système Unix trouver sous Windows ?

Je vois que le find.exe sous Windows ressemble davantage à un grep . Je suis particulièrement intéressé par l'équivalent de

find . -name [filename]

2voto

Serid Points 113

Dans PowerShell, vous pouvez utiliser Get-ChildItem (alias ls ), comme indiqué dans d'autres réponses.

ls . -Filter *.zip -Recurse

Il pourrait également être utile d'obtenir les chemins complets des fichiers au lieu des noms courts.

(ls -Path . -Filter *.zip -Recurse).FullName

Et vous pouvez aussi facilement exécuter des commandes arbitraires sur les fichiers trouvés.

(ls -Path . -Filter *.zip -Recurse).FullName | ForEach-Object -Process {
    # The $_ variable is the path to a located file.
    echo "Found file: $_"
}

1voto

Justin Points 111
ls c:\ file.ext -r

Vous pouvez utiliser cette simple commande powershell. Utilisez -ErrorAction Ignore pour vous débarrasser des erreurs de permission.

1voto

sramam Points 11

Bien qu'il ne s'agisse pas d'un substitut complet, ce simple fichier batch a résolu la plupart des problèmes pour moi :

# findw.bat
# 
# usage: findw dir search-pattern
#
dir %1 /s /b | findstr /i %2

0voto

Anke Points 1

Vous pouvez utiliser get-childitem de manière très similaire à find.

get-childitem -recurse [startpath] -name [filetofind]

[startpath] est le chemin par lequel la récursion doit commencer (par ex. . pour le répertoire actuel)

[filetofind] est ce que vous recherchez.

Il est même possible de le faire à partir de cmd (sans interactieve powershell) :

powershell -command "get-childitem -recurse [startpath] -name [filetofind]"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X