वहाँ एक 'ऊपर' मिल रहा है?


11

मैंने पाया कि मैंने यह सवाल गलत स्टैटेक्सचेंज साइट पर पूछा है ।

एक निश्चित पथ से शुरू होने वाली फ़ाइलों को खोजने के लिए, मैं उपयोग कर सकता हूं find <path> ...। अगर मैं 'अपवर्ड' यानी मूल निर्देशिका में खोजना चाहता हूं, और यह माता-पिता है, और ..., तो क्या एक समान उपकरण है?

उपयोग का मामला डॉट्स की सही संख्या (..///x.txt या ../../../x.txt?) का उपयोग करने के लिए जान रहा है। उदाहरण के लिए एक मेकफाइल का उपयोग करना जिसमें कुछ सामान्य मेकफाइल फ़ंक्शन भी शामिल हैं।

इस तरह एक फ़ोल्डर संरचना के लिए इरादा उपयोग:

/
/abc
/abc/dce/efg/ghi
/abc/dce/efg2


$ cd /abc/dce/efg/ghi
$ touch ../../x.txt
$ upfind . -name X*
../../x.txt
$ upfind . -name Y* || echo "not found"
not found
$ touch /abc/dce/efg2/x.txt
$ upfind . -name Y* || echo "not found"
not found
$ 

तो संक्षेप में:

  • इसे इस फ़ोल्डर पर खोजना चाहिए, यह माता-पिता का है, यह माता-पिता का है ...
  • लेकिन उनके किसी भी भाई-बहन में नहीं (जैसे 'खोजो' होगा)
  • यह मौजूदा पथ के सापेक्ष मिली हुई फ़ाइल की रिपोर्ट करेगा

यह उस लिंक से प्रकट होता है जो आपने पहले से ही एक स्क्रिप्ट लिखी थी जिसने आपकी समस्या को हल किया ...
मैट

@ मैट: हाँ, लेकिन मैं एक बेहतर जवाब खोजने की कोशिश कर रहा हूँ, और यह ऐसा करने के लिए एक बेहतर मंच है।
xtofl

आह। वास्तव में, मुझे लगता है कि सबसे अच्छा मंच SO होगा, है ना?
मैट

यूनिक्स SE पर संभव वही: unix.stackexchange.com/questions/6463/…
Ciro Santilli Sant 6 6 996ICU 事件

जवाबों:


17

आप इस सरल स्क्रिप्ट का उपयोग कर सकते हैं। यह डायरेक्टरी ट्री को ऊपर की ओर चलाता है और निर्दिष्ट फाइलों के लिए सीरस बनाता है।

#!/bin/bash
while [[ $PWD != / ]] ; do
    find "$PWD"/ -maxdepth 1 "$@"
    cd ..
done

उपयोग:

upfind -name 'x*'

1

आप बस इसके घटक निर्देशिका नोड्स में पथ को विभाजित कर सकते हैं और हर एक को विवेकपूर्ण तरीके से खोज सकते हैं। यह एक bashस्क्रिप्ट है।

IFS=/; dn=($1); ct=${#dn[@]}
for((i=0; i<ct; i++)); do
  subd+=/"${dn[i]}"
  dots=$(for((j=ct-i; j>1; j--)); do printf "../"; done)
  find "$subd" -maxdepth 1 -type f -name "$2" -printf "$dots%f\n"
done

चलाने upfind $HOME/zt" "Y*"... जो निम्नलिखित उत्पादन का उत्पादन
जब yabba में मौजूद है / , / घर / उपयोगकर्ता , / घर / उपयोगकर्ता / ZT

../../../YABBA
../YABBA
YABBA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.