আপনি যদি রেপোর স্থানীয় নাম সরবরাহ করেন তবে $ _ :
git clone git@github.com:npm/npm.git npm-local-dir && cd $_
তবে আপনি যদি দীর্ঘ নামগুলি আবার টাইপ করতে না চান তবে এটি কিছুটা কুৎসিত তবে সেডের সাথে করণীয়:
git clone git@github.com:pckujawa/pattern-rec.git &&
cd `echo $_ | sed -n -e 's/^.*\/\([^.]*\)\(.git\)*/\1/p'`
সম্পাদনা: আচ্ছা, আমি মানবকে ধন্যবাদ জানাতে যাচ্ছিলাম (নীচে মন্তব্য করুন)
git clone foo/bar && cd !$:t
তবে এটি zsh তে কাজ করে না ( zsh কীভাবে বিস্তৃতি ঘটায় তা প্রথম কমান্ডটিকে ইনপুট হিসাবে না বিবেচনা করে !$
) এর কারণ। আমাকে কী করতে হবে তা দেখতে হবে !$:t
( বাশ শেলের অগ্রযাত্রা | {{me: -w যাই হোক ।)। !$
পূর্ববর্তী কমান্ডের শেষ অংশটি দখল করে এবং :t
"লেজ রেখে সমস্ত নেতৃস্থানীয় ফাইল নাম উপাদানগুলি সরান।" ভাল তথ্য, তবে আমি আশা করি আমি এটি zsh এর সাথে কাজ করতে পারি (আমি noglob
কোনও সাফল্য না দিয়ে চেষ্টা করেছি )।
সম্পাদনা: ব্যবহার করার পরিবর্তে sed
বা !$:t
(যা আমার জন্য zsh তে কাজ করে না) পরিবর্তে আমি আরও দুটি অপশন পেয়েছি (একটিটি https://unix.stackexchange.com/users/5685/frederik-deweerdt এর উত্তর https এর সাথে উত্তর দিয়ে গেছে) : //unix.stackexchange.com/users/129926/henrik-n এর মন্তব্য):
git clone git@github.com:npm/npm.git && cd $(basename $_ .git)
অথবা
git clone git@github.com:npm/npm.git && cd ${${_%%.git*}##*/}
~/.bashrc
ফাইলটিতে সেই ফাংশনটি লেখার জন্য এটি উল্লেখ করা দরকার (উদাহরণস্বরূপ) এবং আমার পক্ষে কমপক্ষে এটি কার্যকর হয়নি, প্রতিস্থাপনের সাথে আমার এটি ঠিক করা দরকার লাইন:/usr/bin/git "$@" 2>&1 | tee $tmp