सवाल लिनक्स पर निर्देशिका कैसे खोजें?


मेरे पास एक वीपीएस है सूज़ लिनक्स 10.3

मैंने लॉग इन किया है SSH / पोटीन और यह पता लगाने की कोशिश कर रहा हूं कि मेरी वेब फाइलें कहां स्थित हैं।

चूंकि मैं एफ़टीपी के माध्यम से एक निर्देशिका में अपलोड कर रहा हूं httpdocs, मुझे लगता है कि यह निर्देशिका कहीं मौजूद है।

मेरी Google खोजों ने मुझे ऐसा करने के लिए सिखाया है, मेरी रूट निर्देशिका पर जाएं और टाइप करें:

find httpdocs -type d

लेकिन यह कहता है "ऐसी कोई फ़ाइल या डायरेक्टरी नहीं है"।

मैं इस निर्देशिका को कैसे ढूंढ सकता हूं?


410
2018-06-28 17:51


मूल


किसी के विचार में, प्रश्न में कमांड सभी निर्देशिकाओं को पाता है (-type d) निर्देशिका प्रविष्टि में httpdocs (वर्तमान कार्यशील निर्देशिका के सापेक्ष, आमतौर पर एक निर्देशिका नहीं है)। यह त्रुटि संदेश के साथ विफल रहता है क्योंकि कोई निर्देशिका प्रविष्टि नहीं है httpdocs सिस्टम की मूल निर्देशिका में, और इसलिए खोज के लिए कोई प्रारंभिक बिंदु नहीं है। - Daniel Beck♦


जवाब:


यह है:

find / -type d -name 'httpdocs'

पहला पैरामीटर "/" कहां देखना है, इस मामले में "/" यह पूरी प्रणाली है।

नाम अनदेखा करने के लिए नाम हो सकता है

भी प्रकार अनिवार्य नहीं है

उपयोग : आदमी मिलते हैं अधिक विकल्पों के लिए


562
2018-06-28 18:00



ढूंढें / -नाम 'httpdocs' बहुत अच्छा काम करता है - Edward Tanguay
यह साधारण खोजों के लिए कोई फर्क नहीं पड़ता है, लेकिन अधिक जटिल खोज कमांड के लिए, यह ध्यान देने योग्य है कि कमांडलाइन पर क्रम में चीजों का मूल्यांकन किया जाता है। तो, चीजों को गति देने के लिए, हो सकता है कि आप -Tpe डी (निर्देशिका केवल) नाम से पहले हो। दोबारा, इससे कोई फर्क नहीं पड़ता, लेकिन अधिक जटिल खोजों में आने पर यह खोज की गति में काफी सुधार कर सकता है। - Dominic Eidson
असल में, -name परीक्षण तब से अधिकतर परीक्षणों की तुलना में तेज़ है -name निर्देशिका की लिस्टिंग के खिलाफ मेल खाता है, जो डिस्क से पहले ही लोड हो चुका है, और अन्य परीक्षणों को करने की आवश्यकता है stat(2) फ़ाइल जानकारी प्राप्त करने के लिए। पहले के बाद stat() एक फ़ाइल के लिए कॉल करें, बाद के परीक्षण स्मृति से मिलता है, उदाहरण: -type f -mtime -10। - Arcege
यदि आप संपूर्ण फाइल सिस्टम, विशेष रूप से एक सर्वर पर एक खोज करने जा रहे हैं, तो आमतौर पर इसका उपयोग करना अच्छा होता है niceइसलिए खोज अधिक महत्वपूर्ण प्रक्रियाओं से बहुत अधिक संसाधन नहीं लेता है: nice find / ... - Arcege
मैं सभी अनुमति त्रुटियों में छिपे हुए खोज परिणामों को छिपाने से बचने के लिए 2> / dev / null जोड़ूंगा। - Jason Yeo


यह आदेश आपको वह प्राप्त करना चाहिए जो आप खोज रहे हैं:

find / -type d -name httpdocs

जो httpdocs के नाम से निर्देशिकाओं के लिए आपके सर्वर की रूट से खोज करेगा या यदि आप केवल वर्तमान निर्देशिका से खोजना चाहते हैं तो '/' को '।' से प्रतिस्थापित करें।

एक और आदेश जो आप कोशिश कर सकते हैं वह पता लगाता है कि आप ऐसा कुछ करेंगे:

locate httpdocs

61
2018-06-28 18:00



httpdocs का पता लगाएं मुझे बताता है "पता लगाएँ: आदेश नहीं मिला" - Edward Tanguay
"पता लगाएँ" कमांड का उपयोग करने वालों के लिए (यह देखते हुए कि यह आपके सिस्टम में मौजूद है), सुनिश्चित करें कि वह डेटाबेस जो दिखता है वह अद्यतित है; आम तौर पर कुछ क्रॉन नौकरी इसका ख्याल रखती है। अन्यथा, "अद्यतन बी" चलाएं (रूट होने के नाते)। फिर अपनी आवश्यक "पता <somefile>" चलाएं। हाल ही में जोड़े गए फाइल / डीआईआर खोजने के लिए यह आवश्यक है। - David Ramirez
पता लगाने के लिए +1। आईटी इस बहुत तेज़ लेकिन केवल तभी जब इसकी अनुक्रमणिका अद्यतित है। सौभाग्य से, "httpdocs" जैसी कुछ जगह अक्सर स्थान नहीं बदलेगी। यदि आप मशीन पर फ़ाइलों की बार-बार खोज करने की योजना बना रहे हैं, तो यह अपडेटेड क्रॉन जॉब सेट करने के लिए आवश्यक कुछ मिनटों के लायक है। - Doug Harris
इसके अलावा, कई मामलों में, पता लगाने से बहुत सारे परिणाम वापस आ जाएंगे क्योंकि उस निर्देशिका में सभी 100k फाइलें दिखाई देंगी। इस विशेष मामले में यदि प्रत्येक उपयोगकर्ता के पास 100 या 1000 की फाइलों के साथ अपना स्वयं का httpdocs होता है तो परिणामस्वरूप ओपी चाहता है शायद खो जाएगा। - Jistanidiot
पता लगाने के लिए +1 ... मैं अपना डेटाबेस अद्यतन रखता हूं इसलिए यह आदेश बहुत उपयोगी है ... महान विचार। - nicorellius


find / -type d -name httpdocs 2> /dev/null

इससे आपके द्वारा अपेक्षित सभी त्रुटि संदेशों को समाप्त कर दिया जाएगा (पढ़ना, हमेशा) रूट उपयोगकर्ता के रूप में ऐसा नहीं करते हैं। इस तरह से करने की सिफारिश करेंगे।


26
2017-11-08 01:04



2> /dev/null विकल्प बहुत उपयोगी है। अन्यथा वांछित परिणाम देखना मुश्किल हो सकता है ... - Gottlieb Notschnabel
यह भी देखें मैं "ढूंढने" से सभी "अनुमति अस्वीकृत" संदेशों को कैसे बहिष्कृत कर सकता हूं? - galath


"केस असंवेदनशील" पैटर्न और वाइल्डकार्ड के उपयोग को खोजने के लिए पैरामीटर -नाम को जानना महत्वपूर्ण है: *,?, आदि ..

दो उदाहरण:

स्ट्रिंग "लिनक्स" युक्त सभी फ़ाइलों को / रूट में खोजें, केस असंवेदनशील:

find  /root -type f -iname "*linux*"

स्ट्रिंग "लिनक्स" युक्त सभी रूट्स / रूट से खोजें, केस असंवेदनशील:

find  /root -type d -iname "*linux*"

यहां से निकाला गया:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


11
2017-12-06 23:50



यह प्रश्न इस निर्देशिका के बारे में है कि आप किस निर्देशिका को जानते हैं, न कि उस निर्देशिका को कैसे ढूंढें, जिसका नाम आप जानते हैं (लगभग)। इसके अलावा, स्वीकार्य उत्तर (6 साल पहले से!) पहले से ही उल्लेख करता है -iname एक मामला असंवेदनशील विकल्प के रूप में -name। - G-Man


आप लगभग यह है। सही वाक्यविन्यास होगा:

find / -type d -name httpdocs

निर्देशिका की संभावना है /var/www/


9
2018-06-28 18:02



जो मुझे बताता है "पथ अभिव्यक्ति से पहले होना चाहिए" - Edward Tanguay