Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Select-String's wildcard matching for -Path should exclude directories #4820

Copy link
Copy link
@mklement0

Description

@mklement0
Issue body actions

Select-String only supports file paths passed to -LiteralPath and (in resolved form) -Path.

As an aside: Even though the error message when you pass a directory path is technically correct, it could be more helpful:

Select-String: The file /path/to/dir cannot be read: Access to the path '/path/to/dir' is denied.

It would be convenient to automatically exclude directory matches from what a wildcard expression passed to -Path resolves to, given that they won't be processed anyway.

This would allow searching all files in a directory, whatever extension they have or whether they have one at all, with Select-String -Path * findme

On a side note: -Path's wildcard matching currently invariably excludes hidden files, so the only way to include hidden files in the search is to pipe from Get-Item / Get-ChildItem with -Force.

Current behavior

Setup: Create a directory that contains a subdirectory and a text file:

Push-Location (New-Item -Type Directory -Force (Join-Path ([io.path]::GetTempPath()) $PID))
$null = New-Item -Type Directory subd
'hi' > t.txt

Using wildcard expression * reports an error, because * also matches the directory, subd:

> Select-String -Path * hi
Select-String : The file .../subd cannot be read: Access to the path '.../subd' is denied.
...

t.txt:1:hi

Desired behavior

The directory wildcard match should be ignored.

> Select-String -Path * hi

t.txt:1:hi

Environment data

PowerShell Core v6.0.0-beta.6 on macOS 10.12.6
PowerShell Core v6.0.0-beta.6 on Ubuntu 16.04.3 LTS
PowerShell Core v6.0.0-beta.6 on Microsoft Windows 10 Pro (64-bit; v10.0.15063)
Windows PowerShell v5.1.15063.502 on Microsoft Windows 10 Pro (64-bit; v10.0.15063)
Reactions are currently unavailable

Metadata

Metadata

Assignees

Labels

Issue-BugIssue has been identified as a bug in the productIssue has been identified as a bug in the productResolution-FixedThe issue is fixed.The issue is fixed.WG-Cmdlets-Utilitycmdlets in the Microsoft.PowerShell.Utility modulecmdlets in the Microsoft.PowerShell.Utility module

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.