Answers:
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
。
没有安装其他cmdlet,您可以简单地使用Get-ChildItem
:
Get-ChildItem -Filter *.zip -Recurse $pwd
dir
,ls
或者gci
,除非你正在写一个脚本。
如果你正在使用Unix的发现来搜索目录层次结构中的文件,然后PowerShell的方法是使用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 .