বাশ: সর্বাধিক সংশোধিত একটি সাব-ডিরেক্টরিকে কীভাবে প্রবেশ করবেন?


4

আমি জানি যে ls -ltr করে সর্বাধিক সংশোধিত একটি ডিরেক্টরি আমি খুঁজে পেতে পারি, তবে শেষের পরিবর্তিত আইটেমটি ফাইল হতে পারে, ডিরেক্টরি নয়। দ্বিতীয়ত আমি এখনও ডিরেক্টরি নাম টাইপ করতে হবে। আমার ডিরেক্টরিটির নাম হ্যাশ কোডের মতো, যা সত্যিই পঠনযোগ্য নয় এবং প্রতিবার টাইপ করা বেশ বেদনাদায়ক।

এটি করার জন্য কোনও সহজ ওয়ানলাইনার?

উত্তর:


7
cd "$(ls -dt */ | head -1)"

এটিকে একটি উপাধি হিসাবে সংরক্ষণ করুন ~/.bashrc, যেমন

alias lcd='cd -- "$(ls -dt -- */ | head -1)"'

এবং এখন যে lcdকোনও ডিরেক্টরিতে বর্তমান ডিরেক্টরিতে সর্বাধিক পরিবর্তিত ডিরেক্টরিতে পরিবর্তিত হবে।


মনে রাখবেন যে এখানে টাইমস্ট্যাম্প ls যাচাই করছে যা পুনরাবৃত্তি হয় না - অর্থাত্ এটি গাছের কোথাও সর্বাধিক সংশোধিত ফাইল খুঁজে পায় না। এটি কেবলমাত্র সেই ডিরেক্টরিতে সরাসরি পরিবর্তনগুলি পরিমাপ করে ।
দেনিথ

এটি আমার পক্ষে কাজ করে না। আমি সর্বশেষ পরিবর্তিত ডিরেক্টরি -bash: cd: mydir/: No such file or directoryযেখানে ত্রুটি পেয়েছি mydir। এটি সঠিক ডিরেক্টরি সন্ধান করছে বলে মনে হচ্ছে তবে কিছু cdব্যর্থ হতে পারে। কোন ধারনা?
প্যাট্রিক মার্চওয়িয়াক

2

আমার জন্য আমার ~/.bashrcকাজগুলিতে এই ফাংশনটি যুক্ত করা

function lcd(){
cd $(ls -v1td --color=never */ | head -1)
}

আমি যদি এটির নাম হিসাবে এটি সংজ্ঞায়িত করার চেষ্টা করি, শেলটি শুরু হওয়ার সাথে সাথে অভিব্যক্তিটি একবার মূল্যায়িত হয় এবং সর্বদা আমার ডিরেক্টরি ডিরেক্টরিতে একই সাব ডিরেক্টরিতে সিডির চেষ্টা করে। --color=neverবিবৃতি ব্যতীত আমি -bash: cd: mydir/: No such file or directoryঅন্য একটি মন্তব্যে উল্লিখিত ত্রুটি পেয়েছি ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.