আমি একটি ফাইল সন্ধান করতে চাই এবং তারপরে এটিতে থাকা ডিরেক্টরিটি লিখি। আমি চেষ্টা করেছি find /media/storage -name "Fedora" | xargs cdতবে অবশ্যই আমি is not a directoryত্রুটি করেছি।
আমি ওয়ান লাইন কমান্ড দিয়ে এর প্যারেন্ট ডিরেক্টরিটি কীভাবে প্রবেশ করব?
shopt -s globstarআপনি করতে পারেন cd /media/storage/**/Fedora, তবে এটি প্রথম ম্যাচে গ্লোবকে মূল্যায়ন করা থামিয়ে দেয় না (সুতরাং এটি স্টিল্ড্রাইভারের সমাধানের চেয়ে ধীর গতির inte ইন্টারেক্টিভ ব্যবহারের জন্য, আমি সাধারণত যা করতাম তা হ'ল মাউসের কাছে পৌঁছানো এবং ডিরেক্টরিটির নাম অনুলিপি / পেস্ট করা, (এবং Alt + ব্যাকস্পেসটি আমি চাই না এমন পথের উপাদানগুলি ছিনিয়ে নেওয়ার প্রয়োজন হিসাবে) তবে আপনি যদি এটি অনেক কিছু করেন তবে আমার ধারণা শেল ফাংশনটি
xargs cdসম্ভবত কাজ করতে পারে না। cdএটি কেবল শেল বিল্টিন হিসাবে কাজ করতে পারে, কারণ এটি নিজেই শেলের প্রসঙ্গটি পরিবর্তন করতে হয়। কোনও xargsশিশু প্রক্রিয়া এটি করতে পারে এমন কোনও উপায় নেই । আইডি কে যদি আপনি "অবশ্যই" বলতে চেয়েছিলেন, বা যদি findপ্রিন্ট করে যে পথটিতে শূন্যস্থান রয়েছে, যা আপনি ব্যবহার করেন নি -d \nবা কোনও কিছু না হওয়ায় এক্সার্গেস দ্বারা বিভক্ত । বা find -exec {} \;।
cdযে মত চালাতে পারবেন না । cdএটি হ'ল বাশ, যদি cdআলাদা কমান্ড থাকত, তবে এটি (নিজস্ব) দির পরিবর্তন হত এবং তারপরে (আপনাকে শেলের কাছে ফিরিয়ে দেওয়া হবে, যা পূর্বের মতো একই অবস্থায় রয়েছে, দির কোনও পরিবর্তন হয়নি)।