विंडोज पर यूनिक्स खोज कमांड के बराबर क्या है ?
मैं देख रहा हूं कि find.exe
विंडोज पर ए ज्यादा है grep
। मैं विशेष रूप से इसके समकक्ष रुचि रखता हूं
find . -name [filename]
विंडोज पर यूनिक्स खोज कमांड के बराबर क्या है ?
मैं देख रहा हूं कि find.exe
विंडोज पर ए ज्यादा है grep
। मैं विशेष रूप से इसके समकक्ष रुचि रखता हूं
find . -name [filename]
जवाबों:
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
विंडोज PowerShell में Cmdlet यूनिक्स / लिनक्स खोजने आदेश के बराबर है
http://windows-powershell-scripts.blogspot.in/2009/08/unix-linux-find-equivalent-in.html
फाइंड-चाइल्डइम ऑप्शंस में से कुछ
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 में शामिल नहीं है; आपको इस cmdlet को किसी लड़के के OneDrive से डाउनलोड करना होगा । इसमें कोई फर्क नहीं है और बस बैश, साइबरविन, यूनिक्सटिल्स या किसी भी अन्य प्रोग्राम को डाउनलोड करने से आपको यूनिक्स चलाने की सुविधा मिलती है find
।
बिना अतिरिक्त cmdlets स्थापित किए, आप बस उपयोग कर सकते हैं Get-ChildItem
:
Get-ChildItem -Filter *.zip -Recurse $pwd
dir
, ls
या gci
, जब तक आप एक स्क्रिप्ट नहीं लिख रहे हैं।
यदि आप एक डायरेक्टरी पदानुक्रम में फ़ाइलों की खोज करने के लिए यूनिक्स की खोज का उपयोग कर रहे हैं, तो पॉवर्सशेल तरीका Get-ChildItem
(उपनाम अन्य gci
) cmdlet का उपयोग करना है और (alias is ) cmdlet के साथ परिणामों को फ़िल्टर करना Where-Object
है where
।
उदाहरण के लिए, C:\Users\
इसके नाम में 'आवश्यक' शब्द के साथ सभी फाइलें (शुरू से और पुनरावर्ती) खोजने के लिए, निम्नलिखित का उपयोग करें:
PS> gci -Path "C:\Users\" -Recurse | where {$_.Name -like '*essential*'}
-like
विकल्प आपको पैटर्न मिलान के लिए वाइल्डकार्ड का उपयोग करने की अनुमति देता है।
यह एक बिल्कुल GNU नहीं है, लेकिन अधिक शक्तियुक्त लाइन लाइन से मेल खाता है।
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" के बाद लौटी हर चीज एक स्ट्रिंग है।
आप कहां ऑपरेटर का उपयोग कर सकते हैं, "?", हालांकि, इसका अधिक काम, और बहुत तेज नहीं:
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 .