সিডি ব্যবহার না করে ডিরেক্টরিতে বেশ কয়েকটি পদক্ষেপ ফিরে পাওয়ার জন্য কোন আদেশ আছে কি?


14

আমি নিয়মিত 'সিডি ../../..//../' যাচ্ছি। এমন কোনও কমান্ড / ওরফে নেই যা আমাকে 'সেমিডি 4' যেতে দিতে পারে এবং আমাকে 4 ডিরেক্টরি ফিরিয়ে নেওয়া হবে?


ls? নিশ্চয়ই আপনি বলতে চাইছেন cd?
ক্রিস জেস্টার-ইয়ং

হ্যাঁ, আমি কেবল তাড়াহুড়ো করে লিখেছি;) এখনই এটি সম্পাদনা করছি।

এই কাজটি করতে চান ?:alias cmd5 = "cd ../../../../../"
ypercubeᵀᴹ

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

উত্তর:


16

এটি আপনার মধ্যে রাখুন ~/.bashrc:

cdup() {
  levels=${1-1}
  while ((levels--)); do
    cd ..
  done
}

(নামটি cdupএফটিআইআই সম্পর্কিত এফটিপি কমান্ড থেকে আসে))


প্রতিক্রিয়াটির জন্য ধন্যবাদ, জেলিদেবের উত্তরটি 1 লাইন সংক্ষিপ্ত হওয়ার কারণে এলো এবং আমি বেছে নিতে পারি না কে বেছে নেবে! যাই হোক ধন্যবাদ!

@ মিউ: উভয় উত্তর কার্যকর হবে তবে আমার, অনেকগুলি, বহু স্তরের জন্য কাজ করবে এবং @ জেলিদেভ কেবলমাত্র একটি সামান্য কয়েকজনের জন্য কাজ করবে (স্ট্যাকের সীমা যাই হোক না কেন)। ;-) (আমি নিশ্চিত যে আপনি কখনই সীমাটি আঘাত করবেন না, তবে আমার সাধারণ অবস্থা, আমি যা পেতে চেষ্টা করছি: :-))
ক্রিস জেস্টার-ইয়ং

সুস্পষ্ট পয়েন্ট, আমি তখন আপনাকে উত্তর প্রদান করেছি। দুঃখিত জেলিদেভ - যদিও সম্ভবত আমি আপনার সমাধানটি ব্যবহার করতে থাকি কারণ আমি এটি পরিবর্তন করতে ভুলে যাব :)

11

আমাকে এমন পরিস্থিতিতে 'পুশড' এবং 'পপড' ব্যবহার করতে শেখানো হয়েছিল।

উদাহরণস্বরূপ, 'পুশড' টাইপ করুন। এবং তারপরে 'সিডি / হোম'। এখন 'পপড' টাইপ করুন এবং আপনি যেখানে শুরু করেছিলেন সেখানে ফিরে আসবেন।

'পুশড' / 'পপড' হ'ল একটি স্ট্যাক, আপনি নিজের পছন্দ মতো অনেকগুলি ডিরেক্টরি সেখানে চাপ দিতে পারেন, তবে পপড করার পরে এটি সর্বশেষে শেষ।


হুঁ, সুন্দর। শুনেছি না। আমি যা খুঁজছিলাম তা পুরোপুরি ফিট করে না তবে এটিও ব্যবহার করবে। ধন্যবাদ।

10

অবশ্যই, কেন না:

আপ () {
    [$ # = 0] && সিডি .. && ফিরে
    [$ 1 = 0] && প্রত্যাবর্তন
    সিডি .. এবং & আপ $ (($ 1 - 1))
}

বাশ লেজ-পুনরাবৃত্তি না, তাই না? আপনি যদি এটি করেন তবে আপনি উপচে পড়তে পারেন up 500। :-)
ক্রিস জেস্টার-ইয়ং

6
যদি আপনার ডিরেক্টরিগুলি গভীরভাবে বাসা বাঁধে তবে আপনার প্রতি আমার সহানুভূতি রয়েছে।
জোশ লি

এটি ব্যবহৃত। ক্রিসকে 1 লাইন দ্বারা বীট করুন;)

@ মুউ: আমি জানতাম না এই প্রশ্নটি একটি কোড গল্ফ ছিল! ;-) বিটিডাব্লু, আসুন আমাদের সাথে যোগ দিন! কোডগলফ.স্ট্যাকেক্সচেঞ্জ.কম
ক্রিস জেস্টার-ইয়াং

3
@ মিউ দয়া করে মনে রাখবেন যে সাধারণভাবে শের স্ক্রিপ্টগুলি লেখার জন্য পুনরাবৃত্তি উপযুক্ত উপায় নয়
জোশ লি

4

দ্রুত এবং ময়লা:

cmd () { dir=.; for i in $(seq 1 $1); do dir=$dir/..; done; pushd $dir; }

কেবল একবার ডিরেক্টরি পরিবর্তন করতে প্রস্তুত করা হয়েছে।


2

এখানে একটি বিকল্প উপায়:

function cdup
{
    cd $(for ((i=0 ; i<$1 ;i++)); do printf "../" ; done)
}

1

আপনি ব্যবহার করতে pushdএবং popdলোকেশন চিহ্নিতকারীগুলি সেট করতে এবং আপনি যে ডিরেক্টরিতে পরিবর্তন করেছেন সেখান থেকে সহজেই সেখানে ফিরে যেতে চাইবেন ।

আপনি যে ডিরেক্টরিটি প্রচুর ব্যবহার করেন তার নামের সাথে আপনি একটি ভেরিয়েবল সেট করতে পারেন, তারপরে সেখানে সিডি করুন:

MYPROJ=~/projects/name/src
cd $MYPROJ
proj1='cd $MYPROJ'


1

printfএরপরে cdএটি ব্যবহার করে পথটি তৈরি করুন :

cdup() {
    local path
    printf -v path '%*s' "${1:-1}"
    cd "${path// /../}"
}

হিসাবে ব্যবহার:

cdup 4 # to go up four directories
cdup 1 # to explicitly go up one directory
cdup   # to implicitly go up one

0

আপনার পক্ষে কার্যকর হতে পারে এমন দুটি ধারণা:

  1. সিডি -
    আপনি যে সর্বশেষ ডিরেক্টরিতে ছিলেন সেটিতে ফিরে যান I আমি আমার কোড ট্রি থেকে গভীর থেকে নীচে ফিরে তার গোড়ায় ফিরে যেতে এই সমস্ত সময় ব্যবহার করি ... যদিও এটি কেবলমাত্র যদি আপনি এটিতে সিডি করতেন তবেই কাজ করে পরিবর্তন.

  2. সিডিডি পুরানো নতুন
    এটি একটি স্ক্রিপ্ট ফাংশন ছিল যা আমি অতীতে লিখেছিলাম যা আমি একই রকম গাছের মাঝে ঘোরাঘুরি করার জন্য ব্যবহার করি। মূলত এটি দুটি আর্গুমেন্ট নিয়েছে এবং আপনার পথে একটি রেজিপ্স্প করেছে, শাখাগুলি এবং এগুলির মধ্যে ঘুরে দেখার জন্য দুর্দান্ত। উদাহরণস্বরূপ আপনি যদি ~ / bzr / ওয়েব / ট্রাঙ্ক / পাথ / থেকে / বৈশিষ্ট্য এবং আপনি ~ / bzr / ওয়েব / বৈশিষ্ট্য-শাখা / পাথ / থেকে / বৈশিষ্ট্য পেতে প্রয়োজন হয় তাহলে আপনি করতে হবে cdd trunk feature-branch। আমার প্রয়োগটি এআইএক্স-এ একটি প্রত্নতাত্ত্বিক শেল ল্যাঙ্গুয়েজে ছিল, তবে এটি বেশ তুচ্ছ ছিল, তাই আপনার প্রয়োজন হলে পছন্দের শেলটিতে প্রয়োগ করা সহজ হওয়া উচিত। আমাদের জন্য এটি খুব দরকারী কারণ কাঠামোর মতো দেখতে: ... / {পণ্য} / {সংস্করণ} / {রিলিজ} / {এসআরসি, বিএলডি, ডিবিজি, পিকেজি, টিএসটি} / {উপাদান} / ... তাই চলাফেরা সেই গাছে খুব দ্রুত উন্মাদ হয়ে গেল।

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