নিশ্চিত করা বর্তমান ওয়ার্কিং ডিরেক্টরিটি ইনোড নম্বরের উপর ভিত্তি করে, আপনি সেখানে যাবার জন্য যা দেখেছিলেন তা নয়। যেহেতু আপনি ব্যাশ ব্যবহার করছেন, আপনি একই নামের নতুন ডিরেক্টরিতে সিডি করতে নিম্নলিখিত $ PWD ব্যবহার করতে পারেন:
সিডি $ পিডাব্লুডি
উদাহরণস্বরূপ, আমি একটি ডামি মোতায়েন কমান্ড করেছি:
set -x
cd ~/tmp
rm -rf code
mkdir code
echo echo hello from $* > code/run
chmod +x code/run
প্রথম স্থাপনা তৈরি করা হয়েছে, সিডিতে কোড করুন এবং তারপরে সামগ্রীগুলি পরীক্ষা করা হয়েছে ls -lai
যাতে আপনি ইনোডগুলি দেখতে পারেন:
ianh@abe:~/tmp$ ./,deploy first
++ cd /home/ianh/tmp
++ rm -rf code
++ mkdir code
++ echo echo hello from first
++ chmod +x code/run
ianh@abe:~/tmp$ cd code
ianh@abe:~/tmp/code$ ls -lai
total 12
22945913 drwxr-xr-x 2 ianh ianh 4096 Apr 9 23:12 .
22937618 drwxrwxr-x 14 ianh ianh 4096 Apr 9 23:12 ..
22939455 -rwxr-xr-x 1 ianh ianh 22 Apr 9 23:12 run
এবার ২ য় মোতায়েন চালান
ianh@abe:~/tmp/code$ ../,deploy 2nd
++ cd /home/ianh/tmp
++ rm -rf code
++ mkdir code
++ echo echo hello from 2nd
++ chmod +x code/run
এবং ডিরেক্টরি সামগ্রী পরীক্ষা করুন ... এখন ডিরেক্টরিতে কিছুই নেই! এমনকি '।' এবং '..'! এ থেকে আপনি দেখতে পাবেন যে বাশ যখন আপনি cd ..
.. থেকে চালাচ্ছেন তখন '..' ডিরেক্টরি এন্ট্রি ব্যবহার করছে না .. পিডাব্লুডি হ্যান্ডলিংয়ের অংশটি আমি অনুমান করি। কিছু অন্যান্য / পুরানো শেল cd ..
এই পরিস্থিতিতে পরিচালনা করে না, আপনাকে প্রথমে একটি পরম পথে সিডি করতে হবে।
ianh@abe:~/tmp/code$ ls -lai
total 0
সিডি করতে $PWD
এবং আবার চেষ্টা করুন:
ianh@abe:~/tmp/code$ cd $PWD
ianh@abe:~/tmp/code$ ls -lai
total 12
22945914 drwxr-xr-x 2 ianh ianh 4096 Apr 9 23:12 .
22937618 drwxrwxr-x 14 ianh ianh 4096 Apr 9 23:12 ..
22939455 -rwxr-xr-x 1 ianh ianh 20 Apr 9 23:12 run
ianh@abe:~/tmp/code$ ./run
hello from 2nd
বর্তমান ডিরেক্টরি (।) এর ইনোড কীভাবে পরিবর্তিত হয়েছে তা নোট করুন?
যদি আপনার মোতায়েন করা স্ক্রিপ্টটি পুরানো ডিরেক্টরিটিকে অন্য কোনও নামে সরিয়ে নিয়েছে, যেমন mv code code.$$
উপরের মোস্তাক স্ক্রিপ্টে, তবে ./run
কাজ করবে তবে আপনি ব্যবহার না করা অবধি পুরানো কোডটি cd $PWD
চালাবেন , নতুন নয়।
ianh@abe:~/tmp/code$ ./run
hello from 2nd
ianh@abe:~/tmp/code$ ../,deploy 3rd
++ cd /home/ianh/tmp
++ '[' -d code ']'
++ mv code code.9629
++ mkdir code
++ echo echo hello from 3rd
++ chmod +x code/run
ianh@abe:~/tmp/code$ ./run
hello from 2nd
ianh@abe:~/tmp/code$ cd $PWD
ianh@abe:~/tmp/code$ ./run
hello from 3rd
ক্যাপিস্ট্রানো ব্যবহার করে স্থাপনের ক্ষেত্রেও একই সমস্যা রয়েছে (তাদের বর্তমানের বর্তমান নাম থেকে বর্তমানের সাথে একটি সিমিলিংক রয়েছে), তাই আমি উত্পাদন / মঞ্চস্থ অঞ্চলে সিডির পাশাপাশি এলএআইএলস রাখার পাশাপাশি RAIL_ENV যথাযথভাবে সেট করি:
alias cdp='export RAILS_ENV=production; echo RAILS_ENV=$RAILS_ENV ; cd /var/www/www.example.com/current'
alias cds='export RAILS_ENV=staging; echo RAILS_ENV=$RAILS_ENV ; cd /var/www/staging.example.com/current'