마지막으로 수정된 날짜까지 N개의 파일을 디렉토리 순서로 가져오는 방법은 무엇입니까?
큰 디렉터리에서 가장 최근에 수정된 날짜가 있는 파일을 하나 또는 몇 개 검색하고 싶습니다.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 -Force -Recurse -File -Path "C:\Users" -ErrorAction SilentlyContinue | Where-Object { $_.CreationTime.Date -lt (Get-Date).Date } | Sort CreationTime -Descending | Select-Object -First 10 CreationTime,FullName | Format-Table -Wrap
이것은 나에게 도움이 됩니다.
PS> dir | Sort-Object LastAccessTime
bash 명령어와 거의 같습니다.
$ ls -ltr
디렉터리 필터링하기:
PS> dir | Sort-Object LastAccessTime | Out-String -Stream | Select-String -NotMatch "^d"
(개인적으로, 저는 마이크로소프트가 "out-string-stream"과 "sls"를 병합하여 "out-grep"라는 새로운 명령을 만들어야 한다고 생각합니다. 그래야 파워셸이 bash 사용자들에게 더 정상적으로 작동하고 셸을 사용자 지정하는 데 방해가 되지 않습니다.명령 출력을 grep하기 위해 그 모든 정크를 입력하고 싶은 사람이 있습니까?
bash 명령은 다음과 같습니다.
$ ls -ltr | egrep -v "^d"
내가 이 글을 쓸 수 있는 가장 짧고 달콤한 방법은
ls | sort LastAccessTime -Descending
이것들은 단지 이것에 대한 가명일 뿐입니다.
Get-ChildItem | Sort-Object LastAccessTime -Descending
마틴 브랜들의 답변은 이유를 포함하므로 반복하지 않겠습니다. 새로운 파워셸 버전에서는 사용할 수 있습니다.Get-ChildItem -File파일만 나열하고 디렉터리(폴더)는 나열하지 않습니다.언제 소개되었는지는 모르겠지만 파워셸 5.1에 있습니다.
다음은 조합의 몇 가지 예입니다.Sort-Object그리고.Select-Object제한하고 분류하기 위해
디렉토리가 아닌 최근 액세스한 파일 5개를 현재 디렉토리에 내림차순으로 나열합니다.
Get-ChildItem -File | Sort-Object -Property LastAccessTime -Descending | Select-Object -First 5
가장 최근에 액세스한 5개의 파일, 현재 디렉토리, 오름차순
Get-ChildItem -File | Sort-Object -Property LastAccessTime | Select-Object -Last 5
가장 오래된 액세스 파일 5개, 현재 디렉토리, 내림차순 나열
Get-ChildItem -File | Sort-Object -Property LastAccessTime -Descending | Select-Object -Last 5
가장 오래된 액세스 파일 5개, 현재 디렉토리, 오름차순 나열
Get-ChildItem -File | Sort-Object -Property LastAccessTime | Select-Object -First 5
또한 정렬할 수 있는 몇 가지 datetime 파일 속성이 있습니다.모든 파일을 가져오려면 다음과 같이 하십시오.
Get-ChildItem | Get-Member -MemberType Property | Where-Object -Property Definition -Like "datetime*"
TypeName: System.IO.FileInfo
Name MemberType Definition
---- ---------- ----------
CreationTime Property datetime CreationTime {get;set;}
CreationTimeUtc Property datetime CreationTimeUtc {get;set;}
LastAccessTime Property datetime LastAccessTime {get;set;}
LastAccessTimeUtc Property datetime LastAccessTimeUtc {get;set;}
LastWriteTime Property datetime LastWriteTime {get;set;}
LastWriteTimeUtc Property datetime LastWriteTimeUtc {get;set;}
언급URL : https://stackoverflow.com/questions/40904836/how-to-get-n-files-in-a-directory-order-by-last-modified-date
'programing' 카테고리의 다른 글
| CSV 데이터를 처리할 때 데이터의 첫 번째 줄을 무시하는 방법은 무엇입니까? (0) | 2023.08.05 |
|---|---|
| Spring Boot MongoDB 연결 문제 (0) | 2023.08.05 |
| SQL Server의 중첩된 트랜잭션 (0) | 2023.08.05 |
| 도커: CLI를 통해 --password를 사용하는 것은 안전하지 않습니다.--password-stdin 사용 (0) | 2023.08.05 |
| 브라우저가 Jquery를 사용하여 기본 인증 팝업을 호출하고 401 오류를 처리하는 것을 방지하는 방법은 무엇입니까? (0) | 2023.08.05 |