আপনি ট্যাব সমাপ্তি ব্যবহার করতে পারেন। অনেকগুলি লিনাক্স ডিস্ট্রিবিউশনে ডিফল্টরূপে, ব্যাশ সেট আপ করা হয় যাতে আপনি যখন [টিএবি] কী টিপে যান, তখন আপনাকে সম্ভাব্য ম্যাচের একটি তালিকা দেওয়া হয়েছে, বা যদি কেবল একটি ম্যাচ থাকে, সমস্ত কিছু পূরণ হয়ে যায়। সিডির জন্য, এটি সাধারণত বর্তমান ওয়ার্কিং ডিরেক্টরিটির উপ-ডিরেক্টরিগুলির একটি তালিকা। আপনি এটি ওভাররাইট করতে পারেন, তবে আমি পরিবর্তে একটি উপনাম তৈরির পরামর্শ দিচ্ছি, যেমন jd
"লাফ ডিরেক্টরি" এর মতো:
alias jd=cd
এবং তারপরে, "বুকমার্কস" সংজ্ঞায়িত করে আপনি জেডি এর সম্পূর্ণতা হিসাবে চান। আরও অনেক বিকল্পের জন্য বাশ ম্যান পৃষ্ঠাটি দেখুন (কমান্ড বা ফাংশন থেকে ফ্লাইয়ের ফলাফলগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন করা সহ) তবে সবচেয়ে সহজ উপায় হ'ল শব্দের একটি তালিকা, সাথে -W
:
সম্পূর্ণ-ডাব্লু "/ এসআরভি / www ~ / টিএমপি ~ / কাজ" জেডি
এখন, jd
[টিএবি] টাইপ করে হিট করুন এবং আপনি আপনার "বুকমার্কস" দেখতে পাবেন। যে কোনও অস্পষ্ট অংশ টাইপ করুন এবং তারপরে সম্পূর্ণ করতে [টিএবি] টিপুন। (উপরের দিকে, ~
এসগুলি আমার হোম ডিরেক্টরিতে প্রসারিত করুন, সুতরাং প্রথম [টিএবি] আমাকে একটি দেয় /
, এবং আমি যদি আঘাত করি w
এবং [টিএবি] আবার /srv/www
পূরণ করি তবে তা পূরণ করা হবে))
অবশ্যই, ~/.bash_profile
এটি চালিয়ে যাওয়ার জন্য এটি এ দিন।
অথবা, আমরা এটি পরবর্তী স্তরে নিয়ে যেতে পারি। একটি ডিরেক্টরি তৈরি করুন ~/.shortcuts
- একটি বিন্দু দিয়ে শুরু করে, এটি লুকানো থাকবে এবং আপনার দুর্দান্ত পরিষ্কার হোম ডিরেক্টরিটি গাঁটছড়া করবে না - এবং এটি আপনার পছন্দসই ডিরেক্টরিতে সিমলিঙ্কগুলি দিয়ে পূরণ করুন। তারপর, করা এই আপনার ~ / .bash_profile:
_list_shortcuts()
{
COMPREPLY=($( compgen -W "$( ls ~/.shortcuts )" -- ${COMP_WORDS[COMP_CWORD]} ))
}
jd()
{
cd -P ~/.shortcuts/$1
}
complete -F _list_shortcuts jd
এটি _list_shortcuts
নামের তালিকা তৈরি করতে ফ্যাকশনে কিছুটা জটিল সমাপ্তি সংজ্ঞায়িত করে এবং jd
একটি সরল নামের পরিবর্তে একটি ফাংশন হয়ে যায়, যেহেতু আমরা চাই যে এটি ন্যায়বিচারের চেয়ে আলাদাভাবে কাজ করা হোক cd
। -P
পতাকা cd
তোলে symlinks সমাধান, তাই সবকিছু স্বচ্ছ জাদু হয়ে যায়। আপনার শর্টকাট নামগুলি এমনকি লক্ষ্যগুলির সাথে মেলে না।
তাই:
$ ls -l ~/.shortcuts/
total 0
lrwxrwxrwx. 1 mattdm mattdm 16 Dec 17 19:44 tmp -> /home/mattdm/tmp
lrwxrwxrwx. 1 mattdm mattdm 17 Dec 17 19:44 WORK -> /home/mattdm/work
lrwxrwxrwx. 1 mattdm mattdm 8 Dec 17 19:44 www -> /srv/www
$ jd tmp
$ pwd
/home/mattdm/tmp
$ jd WORK
/home/mattdm/work
এবং, অভিনব কোনও অতিরিক্ত ডোজ জন্য, jd
কোনও পরামিতি ছাড়াই কার্যকর করা হলে আপনার সমস্ত শর্টকাটগুলির তালিকা তৈরি করুন:
jd()
{
if [[ -z "$1" ]]; then
(cd ~/.shortcuts; stat -c '%N' *)
else
cd -P ~/.shortcuts/$1
fi
}
দ্রষ্টব্য: আমি এর compgen -W $( cmd )
পরিবর্তে ব্যবহার করি compgen -C 'cmd'
কারণ উত্তরোত্তর কখনই আমার পক্ষে কাজ করে না এবং কেন তা আমি বুঝতে পারি না। এটি আমার নিজের একটি নতুন প্রশ্ন হতে পারে। :)