আমি কি ব্যাশে 'like' এর মতো একটি কাস্টম "ডিরেক্টরি উপনাম" তৈরি করতে পারি?


13

ব্যাশে আমি আমার হোম ডিরেক্টরিতে যেতে পারি cd ~এবং বাস্তবে যে কোনও কমান্ড সহ আমার হোম ডিরেক্টরিটি উল্লেখ করতে পারি ~

অন্যান্য ডিরেক্টরি উল্লেখ করতে আমি কি নতুন, কাস্টম "ডিরেক্টরি উপকরণ" (?) তৈরি করতে পারি? হাইপোথিটিক্যাল উদাহরণ:

make_alias "~~" /mnt/photon/work/foo_project/

cp ~/home.png ~~/set_8/home_4.png

কীভাবে এটি করা যায়, যদি তাই হয়? যদি এটি না পারে তবে এটি ডিজাইনের মাধ্যমে এবং কেন তাই হয়?

ভালো লাগল: কোথায় এবং কীভাবে ~সেট করা আছে এবং এই "~" এর সাথে আবদ্ধ?


1
আপনার জন্য বিশেষভাবে সহায়ক নয়, তবে আপনি .... জেডএসএইচে বৈশ্বিক এলিয়াসগুলির সাহায্যে এটি করতে পারেন , তবে বেস নয়। : ওরফে -জি ~~ = '/ এমএনটি / ফটোন / ওয়ার্ক / ফু_প্রজেক্ট /'
সুপারম্যাগিক

1
@ সুপারম্যাগিক: আমি গ্লোবাল এলিয়াসও পছন্দ করি। তবে দ্বিতীয় উদাহরণে (সিপি ~~ / সেট ...) তারা ব্যর্থ হবে। নামযুক্ত ডিরেক্টরিগুলি আরও উপযুক্ত: n=/mnt/photon/work/foo_projectএবং তারপরে cp foo ~n/bar। (ওপির জন্য নোট: zsh এর মধ্যেও সীমাবদ্ধ)।
এমপি

1
@ অলিভারসালজবার্গ: আমি মনে করি এটি কোনও সদৃশ নয়। অন্য প্রশ্নটি একক চরিত্রের রিমপিংস ( @বা _) সম্পর্কে জিজ্ঞাসা করে , যা ~~বাশে সম্ভব নয়, যদিও এটি অবশ্যই (হ্যাকি, তবে সম্ভব)। এছাড়াও, এই রিম্যাপিংটি কীভাবে করা হয় তার উত্তর দেয় না।
ডেনিস

সম্পর্কিত প্রশ্নটি ছিল: superuser.com/questions/541767
n611x007

উত্তর:


25

টিল্ড কোনও উপনাম নয়, এটি বাশের শেল প্রসারণের অংশ (ঠিক যেমন *.txtবা $((1 + 2)))।

বাশ টিলডে সম্প্রসারণ নিম্নলিখিত টিল্ড-উপসর্গগুলি সমর্থন করে:

~            The value of $HOME

~/foo        $HOME/foo

~fred/foo    The subdirectory foo of the home directory of the user fred

~+/foo       $PWD/foo

~-/foo       ${OLDPWD-'~-'}/foo

~N           The string that would be displayed by `dirs +N'

~+N          The string that would be displayed by `dirs +N'

~-N          The string that would be displayed by `dirs -N'

dirsডিরেক্টরি স্ট্যাক ব্যবহার করে। আপনি pushdএটিতে একটি ডিরেক্টরি যুক্ত করতে ব্যবহার করতে পারেন ।

সম্পর্কে আপনার নির্দিষ্ট প্রশ্নের উত্তর দিতে ~~, হ্যাঁ, এটিতে একটি ডিরেক্টরি মানচিত্র করা সম্ভব । কেবলমাত্র একটি ব্যবহারকারী তৈরি করুন ~এবং /mnt/photon/work/foo_project/তার হোম ডিরেক্টরি হিসাবে সেট করুন :

sudo useradd '~'
sudo sed -i 's#:/home/~:[^:]*$#:/mnt/photon/work/foo_project:/bin/false#' /etc/passwd

অবশ্যই, একটি অনেক "স্যানার" পদ্ধতির কেবল শেল ভেরিয়েবলের সংজ্ঞা দেওয়া ~/.bashrcযা কমান্ড দিয়ে আপনার ডিরেক্টরিতে নির্দেশ করে

foo=/mnt/photon/work/foo_project

যা $fooযথারীতি অ্যাক্সেস করা যায় ।

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