এখানে দুটি জিনিস খেলছে। প্রথমত, -
একা আপনার পূর্ববর্তী ডিরেক্টরিতে প্রসারিত হয়। এটি (জোর খনির) cd
অংশে ব্যাখ্যা করা হয়েছে man bash
:
-
ডিরেক্টরি পরিবর্তনের চেষ্টা করার আগে একটি আর্গুমেন্টকে DP OLDPWD এ রূপান্তর করা হয়। সিডিপিএটিএইচএইচএইচ থেকে কোনও খালি খালি ডিরেক্টরি নাম ব্যবহার করা হয়, বা যদি -
প্রথম যুক্তি হয় এবং ডিরেক্টরি পরিবর্তন সফল হয় তবে নতুন কার্যকারী ডিরেক্টরিটির পরম পাথনামটি স্ট্যান্ডার্ড আউটপুটটিতে লেখা হয়। ডিরেক্টরিটি সফলভাবে পরিবর্তিত হলে রিটার্ন মানটি সত্য; অন্যথায় মিথ্যা।
সুতরাং, একটি সাধারণ cd -
আপনাকে আপনার পূর্ববর্তী ডিরেক্টরিতে ফিরিয়ে নিয়ে যায় এবং ডিরেক্টরিটির নাম মুদ্রণ করে। অন্যান্য কমান্ডটি "টিলডে সম্প্রসারণ" বিভাগে নথিভুক্ত করা হয়েছে:
টিল্ড-উপসর্গটি যদি একটি ~+
হয় তবে শেল ভেরিয়েবল পিডাব্লুডির মান টিল্ড-উপসর্গটি প্রতিস্থাপন করে। টিল্ড-উপসর্গটি যদি একটি হয় ~-
, শেল ভেরিয়েবল ওলডিপিডাব্লুডি এর মান সেট করা থাকে তবে এটি প্রতিস্থাপিত হয়। টিলড-উপসর্গের টিলডের পরবর্তী অক্ষরগুলি যদি একটি N নম্বর নিয়ে গঠিত হয়, aচ্ছিকভাবে একটি +
বা a দ্বারা -
উপসর্গ করা থাকে, তবে টিল্ড-উপসর্গটি ডিরেক্টরি স্ট্যাক থেকে সংশ্লিষ্ট উপাদানটির সাথে প্রতিস্থাপন করা হবে, কারণ এটি ডায়ার বিল্টইন দ্বারা প্রদর্শিত হবে আর্গুমেন্ট হিসাবে টিলডে উপসর্গ। তাহলে টিল্ড-prefix মধ্যে টিল্ড নিম্নলিখিত অক্ষরগুলি একটি নেতৃস্থানীয় ছাড়া একটি সংখ্যা দ্বারা গঠিত +
অথবা -
, +
অধিকৃত হয়।
এটি উদাহরণ সহ বোঝা সহজ হতে পারে:
$ pwd
/home/terdon
$ cd ~/foo
$ pwd
/home/terdon/foo
$ cd /etc
$ pwd
/etc
$ echo ~ ## prints $HOME
/home/terdon
$ echo ~+ ## prints $PWD
/etc
$ echo ~- ## prints $OLDPWD
/home/terdon/foo
সুতরাং, সাধারণভাবে, এর -
অর্থ "পূর্ববর্তী ডিরেক্টরি"। সে কারণেই cd -
নিজেই আপনাকে যেখানেই ছিল সেখানে ফিরিয়ে আনবে।
মূল পার্থক্যটি হ'ল বিল্টিনের সাথে cd -
নির্দিষ্ট cd
। আপনি যদি echo -
এটি চেষ্টা করেন তবে এটি একটি মুদ্রণ করবে -
। ~-
টিল্ড সম্প্রসারণ কার্যকারিতা অংশ এবং একটি পরিবর্তনশীল একইভাবে আচরণ করে। এজন্য আপনি echo ~-
কিছু অর্থবহ পেতে পারেন । আপনি এটিতে এটি ব্যবহার করতে পারেন cd ~-
তবে আপনি এটি অন্য কোনও কমান্ডে ব্যবহার করতে পারেন। উদাহরণস্বরূপ cp ~-/* .
যা সমান হবেcp "$OLDPWD"/* .
cd ~-
।