大きなディレクトリで最新の更新日を持つ1つまたはいくつかのファイルを検索したい。 PowerShellコードを試してみましたが、うまくいきません。
Get-ChildItem 'D:\Temp' | Sort-Object LastWriteTime
-Recurse
を使用してすべてのディレクトリを検索できることを知っています。しかし、どのように:
一部のファイルのみを制限する
降順モードで注文する
ディレクトリをリストしない
ご協力いただきありがとうございます!
Select-Object -first 10
にSort-Object LastWriteTime -Descending
へのパイプWhere-Object { -not $_.PsIsContainer }
へのパイプこれらを一緒に結合するために、ここではD:\Temp
からすべてのファイルを読み取り、LastWriteTime
降順でソートし、最初の10個のみを選択する例を示します。
Get-ChildItem -Path 'D:\Temp' |
Where-Object { -not $_.PsIsContainer } |
Sort-Object LastWriteTime -Descending |
Select-Object -first 10
これは私のために働く:
PS> dir | Sort-Object LastAccessTime
Bashコマンドとほぼ同じです。
$ ls -ltr
ディレクトリをフィルタリングするには:
PS> $mydir = dir | Sort-Object LastAccessTime
PS> $mydir | out-string -Stream | sls "^d" -NotMatch
(個人的には、Microsoftは "out-string -stream"と "sls"をマージして "out-grep"という新しいコマンドを作成する必要があると思います。コマンド出力をgrepするためだけに、すべてのジャンクを入力しますか?)
Bashコマンドは次のようになります。
$ ls -ltr | egrep -v "^d"