यहां कुछ उदाहरण दिए गए हैं जिनका हम फायदा उठा सकते हैं जब हम इसका उपयोग करते हैं खोज, फ़ाइलों या फ़ोल्डरों की खोज करने के लिए एक कमांड।
कमांड चलाने के लिए सहायता प्राप्त करने के लिए:
man find
मैनुअल को छोड़ने के लिए, बस कुंजी दबाएं [क्यू] (किसी भी मैनुअल के लिए वैध)।
निम्नलिखित उदाहरणों में अवधि (।) खोजने के बाद (ढूंढें।) का अर्थ है कि हम संकेत द्वारा संकेत किए गए फ़ोल्डर में देख रहे हैं। इसे किसी भी मान्य पथ जैसे / घर / के लिए प्रतिस्थापित किया जा सकता है।
Ejemplos:
बस एक पैटर्न के साथ फाइलों की खोज करें।
find . -type f -name "*.deb"
खोजें और कॉपी करें / घर / पेपे /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Thumbs.db फ़ाइलों को ढूंढें और उन्हें हटा दें।
find . -type f -name "Thumbs.db" -exec rm -f {} \;
निर्देशिका में md5 फ़ाइलों के साथ एक शुद्ध पाठ फ़ाइल बनाएँ।
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
कष्टप्रद .svn फ़ोल्डर हटाएं।
find | grep "\.svn$" | xargs rm -fr
एक पाठ को दूसरे से बदलें।
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
एक दिन पहले तक अद्यतन की गई फ़ाइलें खोजें।
find /var/log/[a-z]* \*.sql -mtime +1
DEB संकुल की md5sums फ़ाइलों को उत्पन्न करने के लिए:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
.txt के अलावा अन्य सभी फ़ाइलों को हटा दें (स्पष्ट रूप से .txt कुछ भी हो सकता है)
खोजो। ! -name "* .txt" -exec rm {} \;
केस-संवेदी मिलानों के बिना खोज:
खोजो। -नाम «* फ़ॉबर *»
टिप्पणी: -exec कमांड को -iname पैरामीटर के साथ निष्पादित नहीं किया जा सकता है।
उत्कृष्ट I इस आदेश को जानना अनिवार्य होना चाहिए, इससे पहले कि मैं उन विकल्पों से डर गया था जो खोज करने में सक्षम होने के लिए 'आदमी' में मौजूद थे, लेकिन इसे अवसर देने से मैं देख सकता था कि यह कितना शक्तिशाली है जब यह खोजने के लिए आता है कि मैं अपनी हार्ड ड्राइव पर भूल गया था 😐
ढूँढें निश्चित रूप से उपयोगी है, विशेष रूप से फ़ाइल नाम से निपटने के लिए जिसमें रिक्त स्थान और अन्य असामान्य वर्ण शामिल हैं। उदाहरण के लिए, मुझे एक बार याद आया कि कोई रास्ता नहीं था जिससे मैं निर्देशिकाओं का एक सेट संपीड़ित कर सकता था, जब तक कि मुझे xargs (जो रास्ते से बहुत तेज है) के साथ खोज का उपयोग करने के लिए हुआ, और समस्या हल हो गई।
खोज आदेश के लिए मेरे पसंदीदा उपयोगों में से एक है पुनरावर्ती परिवर्तन की अनुमति देना:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
दिलचस्प ^ _ ^
चक्र चिह्न कितना अच्छा लग रहा है हाहाहाहाहा icon
मगेया की याद 🙂
हाँ सही 😀
अभी मैं इस हीहे पर आधारित हूं। धन्यवाद 🙂
और एक मेरे distro के लिए ...
धन्यवाद, कमांड बहुत उपयोगी है, मुझे संदेह है कि मुझे याद है कि उबंटू में मैंने एक बार कमांड का उपयोग किया था, क्या यह खोज का कुछ अन्य नाम है या ...?
नकारात्मक. स्थिति जानें, मिलीलीटर y धीमा करना इसके विपरीत अन्य खोज आदेश हैं खोज, वे एक डेटाबेस का उपयोग करते हैं जिसे समय-समय पर कमांड के साथ अद्यतन करने की आवश्यकता होती है अद्यतन किया गया.
दोनों प्रकार के आदेशों के अपने उपयोग हैं। मैं उदाहरण के लिए आमतौर पर उपयोग करता हूं अद्यतन किया गया के बाद मिलीलीटरपता लगाएं कि मैं वास्तव में किसी डेटा के साथ निर्देशिका में त्वरित रूप से कुछ खोजना चाहता हूं, जो मुझे पता है कि बहुत बार अद्यतन नहीं किया जाता है (उदाहरण के लिए, एक भंडार में पैकेज), और खोज जब मैं कुछ और जटिल करना चाहता हूं जैसे कि खोज परिणामों को किसी अन्य कमांड के साथ संयोजित करें, या जब मैं सिर्फ डेटाबेस उत्पन्न नहीं करना चाहता हूं क्योंकि मुझे पता है कि मैं जिस निर्देशिका को खोजने जा रहा हूं उसमें बहुत अधिक जानकारी नहीं है।
बहुत बहुत धन्यवाद ह्यूगो, उत्कृष्ट स्पष्टीकरण, मैं केवल इतना ही कह सकता हूं कि टर्मिनल गनु / लाइनक्स में कितना शक्तिशाली है!
नमस्ते, मैं देख रहा हूं कि यह एक पुराना विषय है, लेकिन उम्मीद है कि आप अभी भी मेरी मदद कर सकते हैं।
मैं regexp का उपयोग करना सीख रहा हूं क्योंकि मैंने एक दस्तावेज देखा है और मैं शब्द त्रुटि या असफलता की तलाश कर रहा हूं और इसकी व्युत्पन्न त्रुटियां या असफलता या विफलता आदि और मेरा regexp है:
: / \ ((? *। (त्रुटि | विफल \ _)। * \) /
इसे निष्पादित करते समय, यह मुझे बताता है कि कोई मैच नहीं हैं it लेकिन करने के लिए
: / \ ((*। * (त्रुटि \)। * \) /
o
: / \ ((। * \ _ (विफल \ _)। * \) /
यदि आप मैच पाते हैं, तो क्या आप मुझे बता सकते हैं कि मैं कैसे गलत हूं?
पूरी लाइन क्या है जो आप डाल रहे हैं?
परीक्षण करने और देखने के लिए कि क्या मुझे इसका हल मिल गया है।
दूसरी ओर, वैसे भी अगर आप चाहें तो यहां देख सकते हैं: https://blog.desdelinux.net/?s=expresiones+regulares
कृपया मेरी मदद करें, मैं * _ZFIR0069.TXT में समाप्त होने वाली फाइलों को दूसरे रास्ते पर कॉपी करना चाहता हूं और अंत में एक तारीख जोड़ना चाहता हूं, मैं एक कमांड कर रहा हूं:
तारीख = $ (तारीख + »% Y% m% d%»)
/ xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \; खोजें
लेकिन परिणाम है:
{\ _20160225% -> लेकिन यह केवल सभी की एक फ़ाइल की प्रतिलिपि बनाता है और इसका नाम बदल दिया जाता है
मैं चाहता हूं कि इसके लिए सभी फाइलों को कॉपी किया जाए और इसका प्रारूप * _ZFIR0069_ $ date .TXT हो
नमस्ते.
Find * -Type d और find / home / pepe -type d में क्या अंतर है? मैं अपने खाते की निर्देशिकाओं को सूचीबद्ध करना चाहता हूं और मुझे समझ में नहीं आता है कि पहला क्यों सही ढंग से करता है और दूसरा नहीं। मदद करने के लिए
मैं फ़ाइलों को संख्याओं में कैसे पा सकता हूं? धन्यवाद