क्या मुझे यहां कुछ याद आ रहा है। निश्चित रूप से यह सब regex और/या लूपिंग आवश्यक नहीं है, एक लाइनर नौकरी करेगा। इसके अलावा "$() में foo के लिए" पथ नामों में रिक्त स्थान होने पर समाधान विफल हो जाएंगे।
बस xargs साथ दो बार dirname उपयोग करते हैं, माता-पिता के माता पिता को पाने के लिए ...
# make test case
mkdir -p /nfs/office/hht/info
mkdir -p /nfs/office/wee1/info
touch /nfs/office/hht/info/.user.log
touch /nfs/office/wee1/info/.user.log
# parent's parent approach
cd /nfs//office/ && find . -name '.user.log' | xargs -I{} dirname {} | xargs -I{} dirname {}
# alternative, have find print parent directory, so dirname only needed once...
cd /nfs//office/ && find . -name ".user.log" -printf "%h\n" | xargs -I{} dirname {}
उत्पादन
./hht
./wee1
और क्या मैं परिणामस्वरूप निर्देशिका खोजने के अनुमतियों को ढूंढ सकता हूं। -नाम '.user_repo।लॉग '| xargs -i {} dirname {} | xargs -i {} dirname {} | xargs ll – Rajeev
मान लीजिए कि आप "ls -lA" के लिए सामान्य रूप से उपयोग किए गए उपनाम हैं, फिर नहीं। xargs केवल उपनाम नहीं चलाएगा, उपनाम नहीं। हालांकि, आप इसके बजाय "xargs ls -lA" कर सकते हैं ... – Adam
चेतावनी दी जानी चाहिए, 'xis' के लिए ध्वज' को बहिष्कृत के रूप में सूचीबद्ध किया गया है, अधिमानतः इसके बजाय '-I' ध्वज का उपयोग करें। –