相当于 Windows 上的 Unix find 命令

ARV*_*ARV 52 windows linux find

什么是 Unix find命令在 Windows 上的等价物?

我看到find.exeWindows 上的更像是grep. 我对相当于

find . -name [filename]
Run Code Online (Sandbox Code Playgroud)

djh*_*987 32

没有安装额外的 cmdlet,你可以简单地使用Get-ChildItem

Get-ChildItem -Filter *.zip -Recurse $pwd
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,除非您正在编写脚本,否则您可能希望使用短别名“dir”、“ls”或“gci”之一。 (2认同)

Jag*_*h G 29

Find-ChildItemWindows Powershell 中的Cmdlet 相当于 Unix/Linux find 命令

http://windows-powershell-scripts.blogspot.in/2009/08/unix-linux-find-equivalent-in.html

一些 Find-ChildItem 选项

  1. Find-ChildItem -Type f -Name ".*.exe"
  2. Find-ChildItem -Type f -Name "\.c$" -Exec "Get-Content {} | Measure-Object -Line -Character -Word"
  3. Find-ChildItem -Type f -Empty
  4. Find-ChildItem -Type f -Empty -OutObject
  5. Find-ChildItem -Type f -Empty -Delete
  6. Find-ChildItem -Type f -Size +9M -Delete
  7. Find-ChildItem -Type d
  8. Find-ChildItem -Type f -Size +50m -WTime +5 -MaxDepth 1 -Delete

披露:我是Find-ChildItemcmdlet的开发者

  • **`Find-ChildItem` 不是官方的 cmdlet,也不包含在 PowerShell 中;您必须从某人的 OneDrive ** 下载此 cmdlet。这与只下载 bash、cygwin、unixutils 或任何其他只允许您运行 UNIX 的“find”的程序没有区别。 (23认同)
  • 谢谢你。这肯定更符合我在回答这个问题时要寻找的内容。 (2认同)

Joh*_*esM 27

dir <drive: [drive:]> /s | findstr /i <pattern>
Run Code Online (Sandbox Code Playgroud)

- 选择 -

dir /s <drive:>\<pattern>
Run Code Online (Sandbox Code Playgroud)

例子

dir c: d: /s | findstr /i example.txt
Run Code Online (Sandbox Code Playgroud)

- 选择 -

dir /s c:\example.txt
Run Code Online (Sandbox Code Playgroud)

  • 呃...抱歉。我有权凭记忆打字。是`dir /s C:\example.txt`。 (2认同)
  • 将 '\B' 添加到 '\S' 可以得到更简洁的输出,每行 1 个文件,带有完整路径,没有标题,没有大小信息等... (2认同)

Jos*_*Kan 8

如果你正在使用Unix的发现来搜索目录层次结构中的文件,然后PowerShell的方法是使用Get-ChildItem(别名gci)cmdlet和结果与过滤器Where-Object(别名where)cmdlet的。

例如,要查找C:\Users\名称中包含单词“essential”的所有文件(以递归方式开始),请使用以下命令:

PS> gci -Path "C:\Users\"  -Recurse | where {$_.Name -like '*essential*'}
Run Code Online (Sandbox Code Playgroud)

-like选项允许您使用通配符进行模式匹配。