সর্বশেষ মান অপসারণ না করে পপড ব্যবহার করা


8

popdস্ট্যাকের শেষ ডিরেক্টরিটি বন্ধ করে দেওয়া ছাড়া আমি কীভাবে ব্যবহারের আচরণ করতে পারি ? অন্য কথায়, আমি যে সর্বশেষ ডিরেক্টরিটি দিয়েছিলাম সেটিতে আবার নেভিগেট করতে চাই pushd, তবে আমি এটি স্ট্যাকের শীর্ষে থাকতে চাই যাতে পরবর্তীটি popdআমাকে একই ডিরেক্টরিতে নিয়ে যাবে (যা এখনও শীর্ষে থাকবে) স্ট্যাক) আবার।


"সিডি -" কাজ করবে না? যদি আমি বুঝতে পারি, ক্রমটি হ'ল: "পুশড ডি 1; পুশড ডি 2; পুশড ডি 3;" এবং এখন d2 ফিরে যেতে হবে, ডান?
tpb261

cd -কাজ করে, তবে cdআপনি প্রস্তুত না হওয়া অবধি কেবল অন্য কোথাও না থাকলে popd। আমি ফিরতে প্রস্তুত হওয়ার আগে আমি প্রায় কয়েকটি স্থানে বাউন্স করি
ফ্রিডম_বেন

এটি সুস্পষ্ট .. তবে কোনওভাবেই আমি আপনার প্রশ্নের অন্তর্নিহিত "কাছাকাছি" মিস করেছি।
tpb261

উত্তর:


2

কেমন: cd "$(dirs -l -p | sed -n '2{p;q}')"


দুর্দান্ত, আপনাকে ধন্যবাদ! আমি যদি এটি কখনও দেখে থাকি তবে এটি কিছু বাশ-ফু। আমি এই আদেশটি peekd(C ++ STL-ish ধরণের এবং আমার মনে রাখার জন্য সহজ) এটিকে আলাদা করে রেখেছি, তাই আমি peekdআচরণটি পেতে কেবল টাইপ করতে পারি। alias peekd='cd "$(dirs -l -p | sed -n '\''2{p;q}'\'')"'
Freedom_Ben

3
@ cd "$(dirs +1)"
ফ্রিডম_বেইন

@ গিলস যখন আমি এটি করার চেষ্টা করি তখন এটি "বাশ: সিডি <আমার ডিরেক্টরি>": এরূপ কোনও ফাইল বা ডিরেক্টরি নেই "যদিও এটি স্পষ্টভাবে বিদ্যমান। কেন যে হয় আপনি কি জানেন? সিডি << আমার ডিরেক্টরি> কে একটি পথ হিসাবে সঠিকভাবে ব্যাখ্যা করছে না? ত্রুটি বার্তা থেকে, দেখে মনে হচ্ছে এটি কাজ করা উচিত। উদাহরণস্বরূপ, <আমার ডিরেক্টরি> সঠিক দেখাচ্ছে এবং আমি যদি "সিডি <আমার ডিরেক্টরি>" টাইপ করি তবে এটি কার্যকর হয়।
নিউকেগুই

1
@ নোকগুয়ে কি <my directory>টিলড দিয়ে শুরু হয়? উপরের আমার মন্তব্যে সংক্ষিপ্তসারটি -lব্যবহার না করে পুরো ডিরেক্টরিটি তালিকাভুক্ত করার বিকল্পটি অনুপস্থিত ছিল ~। এটি হওয়া উচিতcd "(dirs -l +1)"
গিলস 16'11

@ গিলস হ্যাঁ! আমি ঠিক তাই খুঁজছিলাম, ধন্যবাদ! সম্ভবত আপনার মন্তব্যটি পৃথক সমাধান হিসাবে পোস্ট করা উচিত - আমার মতে, এটি এই থ্রেডের সবচেয়ে সাধারণ এবং দরকারী বিকল্প।
নিউকেগুয়ে

10

কোনও যুক্তি ছাড়াই চাপানো স্ট্যাকের উপরের দুটি এন্ট্রিগুলিকে অদলবদল করে, আপনাকে তাদের মধ্যে কার্যকরভাবে সিডি পিছনে পিছনে সিড করার অনুমতি দেয়।

ডি 1 দিয়ে শুরু করে, পুশড ডি 2 এক্সিকিউট করুন স্ট্যাকের সাথে ডি 1 এবং ডি 2 যুক্ত করে এবং আপনাকে ডি 2 এ ছেড়ে দেয়। কোনও যুক্তি ছাড়াই আবার ধাক্কা কার্যকর করুন এবং আপনি d1 এবং d2 দিয়ে স্ট্যাকের বিপরীতে ফিরে এসেছেন।


6

যদি আমি সঠিকভাবে বুঝতে তুমি pushd .পরেই popdতাই popইডি ডিরেক্টরির স্ট্যাক উপরের আবার স্থাপন করা হবে।


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