답변:
dir <drive: [drive:]> /s | findstr /i <pattern>
-대안-
dir /s <drive:>\<pattern>
dir c: d: /s | findstr /i example.txt
-대안-
dir /s c:\example.txt
dir c: /s example.txt
작동합니다.
dir /s C:\example.txt
그것은.
\b
위해 내가 간략하게 사용 합니다 (출력 전용 경로). find <folder> -name <pattern>
-> dir /s /b <folder><pattern>
. 예 : find /tmp -name *.txt
-> dir \s \b C:\temp\*.txt
. 그러나 dir
항상 절대 경로 목록을 반환하는 반면 find
항상 앞에 접두사가 붙습니다<folder>
Find-ChildItem
Windows Powershell 의 Cmdlet은 Unix / Linux find 명령과 동일합니다.
http://windows-powershell-scripts.blogspot.in/2009/08/unix-linux-find-equivalent-in.html
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
공개 : 저는 Find-ChildItem
cmdlet 개발자입니다
Find-ChildItem
공식 cmdlet이 아니며 PowerShell에 포함되지 않습니다. 이 남자는 일부 남자의 OneDrive에서이 cmdlet을 다운로드해야합니다 . bash, cygwin, unixutils 또는 UNIX를 실행할 수있는 다른 프로그램을 다운로드하는 것에는 차이가 없습니다 find
.
당신은 디렉토리 계층 구조에서 파일을 검색 유닉스의 발견을 사용하는 경우, 파워 쉘의 방법은 사용하는 것입니다 Get-ChildItem
(별명이다 gci
) cmdlet를하고 함께 결과를 필터링 Where-Object
(별칭이다 where
) cmdlet을.
예를 들어, C:\Users\
이름에 'essential'이라는 단어가 포함 된 모든 파일 ( 재귀 적으로 시작하여 재귀 적으로) 을 찾으 려면 다음을 사용하십시오.
PS> gci -Path "C:\Users\" -Recurse | where {$_.Name -like '*essential*'}
이 -like
옵션을 사용하면 패턴 일치에 와일드 카드를 사용할 수 있습니다.
이것은 정확히 GNU 찾기는 아니지만 powershell의 Linux 명령 줄 철학과 더 일치합니다.
PS> dir -recurse -ea 0 | % FullName | sls <grep_string>
예:
PS> cd C:\
PS> dir -recurse -ea 0 | % FullName | sls "Program" | sls "Microsoft"
PS> dir -recurse -ea 0 | % FullName | sls "Program" | sls "Microsoft" | out-gridview
참고 : "| % FullName"뒤에 반환 된 모든 것은 개체 대신 문자열입니다.
그러나 Where 연산자 인 "?"를 사용하면 더 많은 작업을 수행 할 수 있습니다.
PS> cd C:\
PS> dir -Recurse -ea 0 | ? FullName -like "*Program*"
| ? FullName -like "*Microsoft*"
| % FullName
| out-gridview
빠른 바로 가기는 다음과 같습니다.
PS> function myfind {dir -recurse -ea 0 | % FullName | sls $args }
PS> cd C:\
PS> myfind "Programs" | sls "Microsoft"
#find all text files recursively from current directory
PS> myfind "\.txt$"
#find all files recursively from current directory
PS> myfind .