سؤال كيف تجد دليلا على لينكس؟


لدي VPS مع سوس لينكس 10.3.

لقد قمت بتسجيل الدخول عبر SSH / المعجون وأنا أحاول أن أجد أين توجد ملفات الويب الخاصة بي.

بما أنني أقوم بالتحميل عبر FTP في دليل يسمى httpdocs، أفترض أن هذا الدليل موجود في مكان ما.

لقد علمتني عمليات البحث في google أن أفعل ذلك ، انتقل إلى الدليل الجذر واكتب:

find httpdocs -type d

لكنه يقول "لا يوجد ملف او مجلد".

كيف يمكنني العثور على هذا الدليل؟


410
2018-06-28 17:51


الأصل


في حالة ما يتساءل شخص ما ، فإن الأمر في السؤال يجد كل الدلائل (-type d) في إدخال الدليل httpdocs (بالنسبة إلى دليل العمل الحالي ، عادةً ولكن ليس بالضرورة دليلاً). يفشل مع ظهور رسالة خطأ بسبب عدم وجود إدخال دليل httpdocs في الدليل الجذر للنظام ، وبالتالي لا يوجد نقطة انطلاق للبحث. - Daniel Beck♦


الأجوبة:


أنه:

find / -type d -name 'httpdocs'

المعلمة الأولى "/" هي مكان النظر ، في هذه الحالة "/" إنه النظام بأكمله.

اسم يمكن أن يكون -iname لتجاهل القضية

أيضا نوع غير إلزامي

استعمال : رجل يجد لمزيد من الخيارات


562
2018-06-28 18:00



العثور على / اسم 'httpdocs' يعمل شكرا كبيرا - Edward Tanguay
قد لا يهم البحث عن عمليات بحث بسيطة ، ولكن بالنسبة إلى أوامر البحث الأكثر تعقيدًا ، تجدر الإشارة إلى أنه يتم تقييم الأشياء بالترتيب الموجود في سطر الأوامر. لذا ، قد ترغب في الحصول على النوع d (الدلائل فقط) قبل -name ، لتسريع الأمور. مرة أخرى ، قد لا يكون هذا مهمًا كثيرًا هنا ، ولكن عند الدخول في عمليات بحث أكثر تعقيدًا ، يمكنه تحسين سرعة البحث بشكل كبير. - 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
لأولئك الذين يستخدمون الأمر "تحديد موقع" (نظرا لوجوده في النظام الخاص بك) ، تأكد من أن قاعدة البيانات التي يبحث عنها محدثة ؛ عادة بعض مهمة كرون يعتني بها. خلاف ذلك ، قم بتشغيل "updatedb" (جذر). ثم قم بتشغيل "حدد موقع <somefile>". يعد ذلك ضروريًا للبحث عن الملفات / dirs المضافة مؤخرًا. - David Ramirez
+1 لتحديد موقع. انها كثير بشكل أسرع ولكن فقط إذا كان فهرسها محدثًا. لحسن الحظ ، لن يؤدي شيء مثل "httpdocs" إلى تغيير الموقع بشكل متكرر. إذا كنت تخطط للبحث بشكل متكرر عن الملفات على جهاز ، فإنه يستحق بضع دقائق لازمة لإعداد مهمة cronb المحدثة. - Doug Harris
أيضًا في العديد من الحالات ، سيؤدي تحديد الموقع إلى إرجاع عدد كبير جدًا من النتائج نظرًا لأن جميع ملفات 100 كيلوبايت في هذا الدليل ستظهر. في هذه الحالة بالذات إذا كان لدى كل مستخدم ملفات httpdocs الخاصة به مع 100 أو 1000 من الملفات ، فإن النتيجة التي يريدها OP ستفقد على الأرجح. - Jistanidiot
+1 لتحديد موقع ... أبقي تحديث قاعدة البيانات الخاصة بي حتى هذا الأمر مفيد جدا ... فكرة عظيمة. - nicorellius


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

سيؤدي ذلك إلى التخلص من جميع رسائل الخطأ التي من المحتمل أن تحصل عليها (اقرأها دائمًا) عندما لا تفعل ذلك كمستخدم أساسي. نوصي القيام بذلك بهذه الطريقة.


26
2017-11-08 01:04



ال 2> /dev/null الخيار مفيد جدا. وإلا فقد يكون من الصعب رؤية النتائج المطلوبة ... - Gottlieb Notschnabel
أنظر أيضا كيف يمكنني استبعاد جميع رسائل "تم رفض الإذن" من "العثور على"؟ - galath


من المهم معرفة المعلمة -iname للبحث في أنماط "حالة الأحرف" واستخدام أحرف البدل: * ،؟ ، وما إلى ذلك.

مثالان:

ابحث في جميع الملفات من / root التي تحتوي على السلسلة "Linux" ، غير حساس لحالة الأحرف:

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

ابحث في جميع الأدلة من / root التي تحتوي على السلسلة "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