Windows'taki Unix find komutunun karşılığı nedir ?
find.exe
Windows'ta daha çok bir şey olduğunu görüyorum grep
. Ben özellikle eşdeğeri ile ilgileniyorum
find . -name [filename]
Windows'taki Unix find komutunun karşılığı nedir ?
find.exe
Windows'ta daha çok bir şey olduğunu görüyorum grep
. Ben özellikle eşdeğeri ile ilgileniyorum
find . -name [filename]
Yanıtlar:
dir <drive: [drive:]> /s | findstr /i <pattern>
- alternatif -
dir /s <drive:>\<pattern>
dir c: d: /s | findstr /i example.txt
- alternatif -
dir /s c:\example.txt
dir c: /s example.txt
de çalışır.
dir /s C:\example.txt
bu.
\b
kısaca kullandığım en benzer sonuçlar için (yalnızca çıkış yolları); find <folder> -name <pattern>
-> dir /s /b <folder><pattern>
. Örneğin find /tmp -name *.txt
-> dir \s \b C:\temp\*.txt
. Ancak dir
her zaman mutlak yolların bir listesini döndürür, oysa find
her zaman önceden eklenmiş yolları verir<folder>
Find-ChildItem
, Windows PowerShell Cmdlet Unix / Linux find komutunun bir eşdeğerdir
http://windows-powershell-scripts.blogspot.in/2009/08/unix-linux-find-equivalent-in.html
Find-ChildItem Seçeneklerinden Bazıları
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
Açıklama: Ben Find-ChildItem
cmdlet geliştiricisiyim
Find-ChildItem
resmi bir cmdlet değildir ve PowerShell'e dahil değildir; Bu cmdlet'i bir adamın OneDrive'ından indirmelisin . Bunun arasında sadece bash, cygwin, unixutils veya UNIX'leri çalıştırmanıza izin veren başka bir program indirmek arasında hiçbir fark yoktur find
.
Yüklü ek cmdlet'ler olmadığında, aşağıdakileri kullanabilirsiniz Get-ChildItem
:
Get-ChildItem -Filter *.zip -Recurse $pwd
dir
, ls
ya gci
senaryo yazmaya sürece.
Eğer bir dizin hiyerarşisinde dosyaları aramak için Unix'in find kullanılarak, o zaman Powershell yolu kullanmaktır Get-ChildItem
(diğer adıdır gci
) cmdlet'in ile sonuçları filtrelemek Where-Object
(takma adıdır where
) cmdlet'indeki.
Örneğin, C:\Users\
adında 'temel' kelimesini içeren tüm dosyaları (en baştan ve tekrarlı olarak) bulmak için aşağıdakileri kullanın:
PS> gci -Path "C:\Users\" -Recurse | where {$_.Name -like '*essential*'}
Bu -like
seçenek, desen eşleştirmesi için joker karakter kullanmanıza izin verir.
Bu tam bir GNU bulgusu değil, powershell altındaki linux komut satırı felsefesiyle daha yakından eşleşiyor:
PS> dir -recurse -ea 0 | % FullName | sls <grep_string>
Örnek:
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
Not: "|% FullName" den sonra döndürülen her şey bir nesne yerine bir dizedir.
Bununla birlikte, Nerede Operatörü "?" Kullanabilirsiniz, ancak bu daha çok çalışır ve çok daha hızlı değildir:
PS> cd C:\
PS> dir -Recurse -ea 0 | ? FullName -like "*Program*"
| ? FullName -like "*Microsoft*"
| % FullName
| out-gridview
İşte hızlı bir kısayol:
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 .