Je veux rechercher un ou quelques fichiers avec la dernière date de modification dans un grand répertoire. Essayer du code PowerShell mais cela ne fonctionne pas bien pour moi.
Get-ChildItem 'D:\Temp' | Sort-Object LastWriteTime
Je sais que je peux utiliser -Recurse
pour rechercher dans tous les répertoires. Mais comment:
Limitez uniquement certains fichiers
Ordre en mode descendant
Ne pas répertorier le répertoire
Merci de votre aide!
Select-Object -first 10
Sort-Object LastWriteTime -Descending
Where-Object { -not $_.PsIsContainer }
Donc, pour les combiner ensemble, voici un exemple qui lit tous les fichiers de D:\Temp
, triez-les par LastWriteTime
décroissant et sélectionnez uniquement les 10 premiers:
Get-ChildItem -Path 'D:\Temp' |
Where-Object { -not $_.PsIsContainer } |
Sort-Object LastWriteTime -Descending |
Select-Object -first 10
Cela fonctionne pour moi:
PS> dir | Sort-Object LastAccessTime
C'est presque la même chose que la commande bash:
$ ls -ltr
Pour filtrer les répertoires:
PS> $mydir = dir | Sort-Object LastAccessTime
PS> $mydir | out-string -Stream | sls "^d" -NotMatch
(Personnellement, je pense que Microsoft devrait fusionner "out-string -stream" et "sls" pour créer une nouvelle commande appelée "out-grep", afin que powershell fonctionne plus normalement pour les utilisateurs bash sans se soucier de personnaliser votre Shell. Qui veut pour taper toutes ces ordures juste pour grep une sortie de commande?)
La commande bash serait:
$ ls -ltr | egrep -v "^d"