কীভাবে দ্রুত সিএলআইয়ের মাধ্যমে গভীরভাবে নেস্টেড ডিরেক্টরিগুলিতে প্রবেশ করা যায়?


16

আমরা জানি যে ব্যবহারটি cd <directory>ডিরেক্টরিটি খুলবে, যদি এটি বিদ্যমান থাকে!

এছাড়াও, cd ..বর্তমান কার্যনির্বাহী ডিরেক্টরি থেকে আমাদের এক স্তর নিয়ে যাবে।

তবে, যখন আমাদের মতো দীর্ঘতর পথ সহ নেস্টেড দির থাকে /home/thina/teams/td/tech/app/release/apks, তখন এটি কেবল ফোল্ডারে যেতে ক্লান্ত হয় apksএবং অন্য নোডে ফিরে আসাও শক্ত, এখানে বলুন /home/thina/teams

এর টাইপিং এড়িয়ে যাওয়ার কোনও উপায় আছে কি cdএবং cd ..? আমি উবুন্টু 16.04 ব্যবহার করছি।


হাঁ! এর টাইপিং এড়িয়ে যাওয়ার কোনও উপায় আছে কি cdএবং cd ..?
gsthina

@ জিগুড়ানার্থিনা আমার ধারণা আপনি একবারে একাধিক স্তর ফিরে গিয়ে কমপক্ষে কয়েকটি কী-স্ট্রোক সংরক্ষণ করতে পারেন, যেমন আপনার ক্ষেত্রেcd ../../../../..
আন্ডারস্কোর_আর

2
প্রতীকগুলি কি একটি বিকল্প?
পকেট

1
আপনি ডক্সের CDPATHভেরিয়েবলটিও দেখতে চাইতে পারেন bash
চিপনার

আপনি যদি না বুঝতে পারেন: আপনি বর্তমান ওয়ার্কিং ডিরেক্টরিতে যে কোনও ডিরেক্টরিতে "সিডি <ডিরেক্টরি>> করতে পারেন - কেবল একটি স্ল্যাশ দিয়ে শুরু করবেন না। সুতরাং আপনার উদাহরণস্বরূপ, যদি আপনার ওয়ার্কিং ডিরেক্টরিটি বর্তমানে "/ হোম / থিনা / টিম / টিডি / টেক / অ্যাপ / রিলিজ" হয় তবে আপনি কেবল "সিডি অ্যাপস" টাইপ করবেন
জ্যাক্যাডসেল

উত্তর:


30

আছে pushdএবং popd:

pushd /home/thina/teams/td/tech/app/release/apks
# current directory now /home/thina/teams/td/tech/app/release/apks
popd
# current directory now what it was before pushd command

ব্যবহার করে দেখুন help pushdএবং help popdআরো বিকল্পের জন্য। কোনও manপৃষ্ঠা নেই, কারণ pushdএবং popdব্যাশ অন্তর্নির্মিত কমান্ডগুলি।


5
cd -একই কাজ করবে না ?
এডউইনকস্ল

5
@edwinksl হ্যাঁ, তবে pushdএবং popdপূর্বের একাধিক পথটি মনে করতে পারে।
জোস

8
ভুলবেন না dirsমধ্যে আপনার ডিরেক্টরির স্ট্যাক তালিকা pushd/ popdকমান্ড।
অ্যারোনিকাল

4
এগুলি ব্যাশ-বিল্টিনস (7) এর জন্য ম্যানুয়াল পৃষ্ঠায় আচ্ছাদিত হয়েছে কারণ তারা ব্যাশ অন্তর্নির্মিত কমান্ড রয়েছে। (অথবা এগুলি বাশের সম্পূর্ণ ম্যানুয়াল পৃষ্ঠায়ও পাওয়া যাবে ) এটি আপনি help pushdএবং একইভাবে help popdউল্লিখিত হিসাবে একই তথ্য (পাশাপাশি পাশাপাশি help dirs) তবে আমি ভেবেছিলাম যে আমি যদি এই আজ্ঞাগুলি কোথা থেকে আসে তবে লোকেরা ভাবতে থাকে।
এমটি

2
@Jos আপনি বানান ভুলhelp pusdh
Sergiy Kolodyazhnyy

16

ইতিমধ্যে সরবরাহ করা খুব ভাল উত্তর ছাড়াও, এখানে ব্যবহার সম্পর্কে কিছু টিপস দেওয়া হয়েছে cd কার্যকরভাবে ।

  • cd - আপনি যে শেষ ডিরেক্টরিটিতে ছিলেন তা আপনাকে ফিরিয়ে আনবে।
  • cd ../../.. আপনাকে একবারে 3 টি স্তর নিয়ে যাবে, আপনি এটি ব্যবহার করতে পারেন .. যতগুলি ডিরেক্টরি পছন্দ করতে পারেন তেমন একসাথে বেড়ানো স্বরলিপিটি করতে পারেন।
  • আপনি যদি নিশ্চিত হন না যে আপনি কতবার উপরে উঠতে চান তবে ব্যবহার করুন cd .. , তবে আবার কমান্ডটি ব্যবহার করতে তীর কী টিপুন দিয়ে ব্যাশ ইতিহাস ব্যবহার করুন।
  • ~বর্তমান ব্যবহারকারীদের হোম ডিরেক্টরিতে সাইন ইন করতে ব্যবহার করুন , আপনি যদি ব্যবহারকারী থিনা হিসাবে লগ ইন করেছেন cd ~/teams, আপনাকে আপনাকে নিয়ে যাবে/home/thina/teams
  • পাথগুলির জন্য বাশ স্বতঃ-সমাপ্তি ব্যবহার করুন, ট্যাব কী cdকমান্ডের কোনও পাথের একটি বিভাগ সম্পূর্ণ করবে , আপনি যদি কোনও পথ বিভাগের কিছু অংশ অনুসরণ করেন Tab, তবে অন্য কোনও বৈধ পছন্দ না থাকলে সেগমেন্টটি সম্পন্ন হবে। উদাহরণস্বরূপ, আপনি টাইপ করে টিপুন থাকলে cd /home/thina/teams/td/tটিপ Tabশব্দটি আপনার জন্য পূরণ করা হবে, যতক্ষণ না td ডিরেক্টরিটিতে অন্য অক্ষর টি দিয়ে শুরু হওয়া টিডি ডিরেক্টরিতে অন্য কোনও ফাইল বা ডিরেক্টরি ছিল না।

এই টিপসগুলিকে একসাথে ব্যবহার করা ট্র্যাভারিং ডিরেক্টরিগুলিকে cdঅনেক কম বেদনাদায়ক করে তুলতে পারে ।


2
বিন্দুটি যুক্ত করা ~, বিশেষত আপনি যদি মূল হন ~userতবে দ্রুত আপনার userহোম ডিরেক্টরিতে পৌঁছে যাবেন ।
একটি সিএনএন

ধন্যবাদ, আমি বুঝতে পারি নি, আমি এটি পরবর্তী সম্পাদনায় যুক্ত করব।
অ্যারোনিকাল

9

একবারে গাছের বিভিন্ন স্তরে যেতে, আপনি নীচের ফাংশনটি ব্যবহার করতে পারেন (উন্নত সংস্করণের জন্য মুড়ুকে ধন্যবাদ):

up ()
{
    local old="$PWD"
    for i in $(seq "${1:-1}"); do
        cd ..
    done
    OLDPWD="$old"
}

তারপরে আপনি এটি করতে পারেন:

$ pwd
/home/thina/teams/td/tech/app/release/apks
$ up 5
cd'ing into /home/thina/teams

উপরন্তু:

  • upকোন যুক্তি ছাড়াই কল করা সমতুল্য যার cd ..কারণে সেট এবং কখন ${1:-1}বিকল্প হয়$11 অন্যথায়
  • সর্বশেষ অভ্যাসটি যথাযথ আচরণ cd ..সংরক্ষণের লক্ষ্যে ওলডিপিডাব্লুডিকে সেট করা cd -

1
টেকনিক্যালি, এটি একটি ফাংশন, একটি উপনাম নয়।
পোস্ট করুন

@ রিনিয়ারপোস্ট: ঠিক আছে! আমি সেই অনুযায়ী সংশোধন করেছি।
পরশ

2
পরামর্শ: -gtপরিবর্তে >>ডিকোসোগ্রাফিক, এটি স্ট্রিংগুলির সাথে তুলনা করে। এছাড়াও, একটি পাথ নির্মাণের পরিবর্তে, কেন না cd ..একটি লুপ মধ্যে: for i in $(seq "${1:-1}"); cd ..; done? এটি শর্তকেও দূর করতে ifপারে।
মুড়ু

@ মুরু আমি আপনার gtমন্তব্যের সাথে একমত , তবে আপনার দ্বিতীয় পরামর্শ সম্পর্কে, উত্তরের চূড়ান্ত বুলেটটি দেখুন। আমার কাছে যৌক্তিক.
অলিফোঁট - মনিকা 20

1
@ অলিফান্ট এটি বিশেষত কঠিন নয়, আপনি কেবল OLDPWDআসল পথে যাত্রা করেছেন । : এখানে একটি সম্পূর্ণ সংস্করণ paste.ubuntu.com/17990874
muru

7

দীর্ঘ ডিরেক্টরি নামের জন্য, পুরো পাথ সহ ভেরিয়েবল ব্যবহার করুন। উদাহরণ স্বরূপ,

APKS="/home/thina/teams/td/tech/app/release/apks"

তাহলে আপনি ঠিক করতে পারেন cd "$APKS"

এক্স সংখ্যা ডিরেক্টরি যেতে, আমার এই ফাংশনটি আমার মধ্যে সংজ্ঞায়িত করা আছে .bashrc

goup() # go up x number of dirs
{
  num=$1
  while [ $num -ne 0  ];do
    cd ..
    num=$( expr $num - 1   )
  done
}

ফিরে আসতে /home/thina/teamsথেকে apksআপনাকে যা করতে হবে

goup  6

ব্যবহারের উদাহরণ এখানে:

$> pwd
/sys/class/backlight/intel_backlight
$> goup 3
$> pwd
/sys
$> 

আরেকটি ছোট ফাংশন যা আমি নিয়ে এসেছি, তবে কখনও তেমন ব্যবহৃত হয়নি bookmark ফাংশন ।

এটি কীভাবে কাজ করে তা এখানে রয়েছে: এটি আপনার বর্তমান ফোল্ডারটিকে কিছু ফাইলে সংরক্ষণ করে এবং তারপরে আপনি সেই ফাইলের লাইন নম্বরের উপর ভিত্তি করে একটি নির্দিষ্ট ডিরেক্টরিতে সিডি করতে পারেন। উদাহরণ:

$> cd /etc/lightdm
$> bookmark
$> cat ~/.dirsbookmarks                                                                                                  
/home/xieerqi
/sys/class/backlight
/etc/lightdm
$> cd $( awk 'NR==2' ~/.dirsbookmarks  )                                                                                 
$> pwd
/sys/class/backlight

এবং এখানে ফাংশনটি নিজেই:

bookmark()
{ # bookmarks current dir
  pwd >> $HOME/.dirsbookmarks
}

5

আপডেট: এর চেয়ে আরও শক্তিশালী একটি সরঞ্জাম রয়েছে autojump: fasdতবে আমি এর সাথে পরিচিত নই।


আমি অবাক হয়েছি autojumpযার এখনও কেউ উল্লেখ করেনি

কমান্ড লাইন থেকে আপনি যে ডিরেক্টরিগুলি সর্বাধিক ব্যবহার করেন সেগুলির একটি ডাটাবেস বজায় রেখে কাজ করে (ডিরেক্টরিগুলি এগুলি যাওয়ার আগে প্রথমে অবশ্যই তাদের অবশ্যই দেখতে হবে visited)

এটি কয়েকটি অতিরিক্ত বিকল্পের সাহায্যে @ গ্রাফিক তৈরি করেছেন যা মূলত।

আমি যেমন উল্লেখ করেছি অন্য প্রশ্নের উপরে :

আপনি কোনও ডিরেক্টরিতে কয়েকবার সিডি করার পরেও (একবারে যথেষ্ট হলেও):

cd /home/thina/teams/td/tech/app/release/apks

আপনি jবর্তমানে যে ডিরেক্টরিতে রয়েছেন তা নির্বিশেষে আপনি দ্রুত সেখানে যেতে শর্টকাটটি ব্যবহার করতে পারেন :

j apks

মনে রাখবেন যে পাথের যে কোনও অংশ ব্যবহার করা কাজ করে, যতক্ষণ না এটি তালিকার সর্বোচ্চ থাকে: j appআপনি .../apksযদি সেখানে গিয়ে আরও বেশি বার যান তবে আপনাকেও নিয়ে যাবে.../app

আমি এটি আপনার নিজের স্ক্রিপ্ট না রেখে সুপারিশ করব যেহেতু এটি ভালভাবে রক্ষণাবেক্ষণ, উবুন্টুর জন্য বিতরণ করা এবং অন্যান্য ঝরঝরে বৈশিষ্ট্য রয়েছে, যেমন বাচ্চা লাফানো :

.../td/tech $ jc apk
.../release/apks $ 

আপনার সরানো হয়েছে apkstdবদলে অন্য কিছু, apksএকটি ভিন্ন গাছের নীচে।


'ফাস্ট' এর জন্য +1। এটা সত্যিই দরকারী।
থমাস

4

ওরফে

আমার ঘন ঘন ব্যবহৃত ডিরেক্টরিগুলির একটি তালিকা আছে যা সরাসরি উপনামের মাধ্যমে উপলব্ধ। এটি হায়ারার্কি পর্যন্ত ডিরেক্টরিগুলির শর্টকাট অন্তর্ভুক্ত করে।

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias cdwork=/home/knub/Repositories/work
alias cduni=/home/knub/University

এখন, যখন আমি তিনটি স্তর উপরে যেতে চাই, আমি কেবল টাইপ করি ....<Enter>এবং সেখানে আমি থাকি!


আমি এটিও পছন্দ করি, যদিও প্রথমদিকে যদিও আমি "স্তরের জন্য 3 হ্যাম 4 পিরিয়ড ..." ভাবি তখন আমি ভেবেছিলাম, "ওহ হ্যাঁ ... কম্পিউটারগুলি 0 , 1, 2, 3!" : ডি এখন মনে রাখা সহজ, দরকারী এবং এমন কিছু যা আমি পাশাপাশি খেলব। চিয়ার্স!
পি স্মিথ


4

autocdবিকল্পটি ( shopt -s autocd) চালু করুন , যাতে আপনাকে টাইপ করতে না হয় cd। উদাহরণস্বরূপ, ..প্যারেন্ট ডিরেক্টরিতে যাওয়ার জন্য আপনার কেবল দ্বি-চরিত্রের কমান্ড প্রয়োজন ।

আপনি যদি দুটি ডিরেক্টরিতে নেভিগেট করে থাকেন তবে আপনি তাদের মধ্যে টগল করতে পারেন cd -যা পূর্ববর্তী ডিরেক্টরি ডিরেক্টরিতে যায়। autocdবিকল্প দেখা যায় না -রানcd - কিন্তু আপনি বেনামী বা যে জন্য ফাংশন বর্ণনা করতে পারেন।

আপনি বিল্টিন pushdএবং একটি স্ট্যাকের মধ্যে ডিরেক্টরি মুখস্থ করতে পারেন popd। অন্তর্নির্মিত dirsডিরেক্টরি স্ট্যাকের তালিকাবদ্ধ করে (আমি খুঁজে পাই)dirs -v আরও পাঠযোগ্য বলে মনে করি)।

যদি আপনি প্রায়শই কোনও নির্দিষ্ট ডিরেক্টরিের সাব-ডিরেক্টরিতে পরিবর্তিত হন এবং এই সাব-ডিরেক্টরিগুলির পরিবর্তে অনন্য নাম রয়েছে, এগুলি CDPATHভেরিয়েবলটিতে যুক্ত করুন। তবে সতর্ক হতে হবে যে আমি কখনই এমন পরিস্থিতি পাইনিCDPATH আসলে খুব সহজ ছিল।

আপনি ডিরেক্টরি নামের একটি ভেরিয়েবল সেট করতে পারেন এবং তারপরে এটিতে পরিবর্তন করতে পারেন $foo

জ্যাশের Zsh ইনস্টল করুন কয়েকটি দুর্দান্ত বৈশিষ্ট্য রয়েছে যা ব্যাশে নেই। তাদের মধ্যে কিছু একই কাজ করে এমন ফাংশন লিখে অনুকরণ করা যায়। বিশেষ করে দুই-যুক্তি ফর্ম cdআপনি সুবিধামত একই নামের, থেকে যেমন সঙ্গে অন্য ডাইরেক্টরি পরিবর্তন করতে দেয় /home/thina/teams/td/tech/app/release/apks/com.acme/v1, দৌড়ানো cd release betaযায় /home/thina/teams/td/tech/app/beta/apks/com.acme/v1


2

আমি যেমন ইউনিক্সএস সম্পর্কিত সম্পর্কিত প্রশ্নের উত্তর ইতিমধ্যে দিয়েছি, আমি এর জন্য z [github] নামে একটি স্ক্রিপ্ট ব্যবহার করি ।

এটি আপনার সিডির ডিরেক্টরিগুলি স্মরণ করে, তাদেরকে ফ্রিকেন্সি (ফ্রিকোয়েন্সি + রিসেন্টি) অনুসারে স্থান দেয় এবং আপনাকে এর নামের কিছু অংশ ব্যবহার করে স্মরণকৃত একটিতে পরিবর্তিত করতে দেয়।

কমপক্ষে একবার ডিরেক্টরিতে সিডি করার পরে আপনি এর পরিবর্তে উদাহরণস্বরূপ করতে পারেন:

$ cd ~user/very/long/path/with/many/subfolders/

শুধু কর:

$ z sub

যা কাজ করবে, আংশিক নামের সাথে ম্যাচিং ব্যবহার করে (ধরে নিবেন যে এর পথে আপনার কাছে অন্য কোনও ডিরেক্টরি নেই যা উপ শব্দের সাথে রয়েছে এবং যার উচ্চতর ফ্রেসেন্সী রয়েছে)।

আমি এর মতো একটি ফাংশনও সংজ্ঞায়িত করেছি, যা প্রথমে একটি সাধারণ সিডির চেষ্টা করে এবং যদি ব্যর্থ হয় z ব্যবহার করে:

function cd() {
    builtin cd "$1" 2> /dev/null || z "$1" || (echo "cd: File or Directory not found: $1" >&2 && exit 1)
}

এটি আপনাকে উভয়ের মধ্যে সেরা দেয়। যদি ফোল্ডারটি বর্তমান ডিরেক্টরিতে থাকে বা একটি বৈধ পূর্ণ পাথ দেওয়া হয়, তবে এটি কেবল সেখানে সিডি করবে, তবে তা না হলে এটি ডাটাবেস এবং সিডির কোনও মিল খুঁজে পাওয়ার চেষ্টা করবে। এটি কখনও কখনও সিডি ব্যবহার করে (ডাটাবেস প্রশিক্ষণ নিতে, এমন ফোল্ডারে যেতে পারে যা আপনি আগে কখনও করেন নি) এবং কখনও কখনও জেড ব্যবহার করার স্মরণ রাখার ব্যথা দূর করে।


আপনি কি নিশ্চিত যে এটি cdআপনার মধ্যে কীভাবে zঘন ঘন পরিদর্শন করা ডিরেক্টরিগুলির ডাটাবেস তৈরি করে তাতে হস্তক্ষেপ হয় না ?
বাম দিকের বাইরে

এটা কিভাবে আলাদা autojump?
সিপরিয়ান টোমোয়াগ

@ বামফ্রন্টাবাউট: নিশ্চিত নয়, তবে এখনও পর্যন্ত এটি দুর্দান্তভাবে কাজ করছে। z অবশ্যই ডেটাবেস তৈরি করে যখনই আপনি বিল্টিন সিডি ব্যবহার করেন (যা আমার সেটআপটি প্রথমে চেষ্টা করে)। যদিও z অংশটি ব্যবহৃত হয় তখন ডাটাবেস আপডেট হয় কিনা তা নিশ্চিত নয়। সম্পাদনা: tested বিল্টিন সিডি ~ / ফোল্ডার / i / have / not / was / to / yet / করার সময় ডাটাবেস আপডেট হয়েছে কিনা তা সবেমাত্র পরীক্ষা করা হয়েছে। এটা.
গ্রিফার

1
@ সিপ্রিয়ানটোমিয়াগা বাস্তবে মনে হয় এটি মূলত একই কাজ করে do আমি যে সিডি কমান্ডটি ব্যবহার করি তার ওভাররাইটও এর জন্য ব্যবহার করা যেতে পারে। স্বতঃসিদ্ধের বিভিন্ন কমান্ডগুলি আকর্ষণীয় বলে মনে হচ্ছে, যদিও!
গ্রিফার

বিটিডব্লিউ: আমি z এর লেখক নই, কেবল এটি খুব দরকারী বলে মনে করি।
গ্রিফার

1

আরও ভাল তিনটি বিকল্প যা আমি ভালভাবে কাজ করতে দেখতে পাই (যদিও ভবিষ্যতে pushdআমি আরও বেশি ব্যবহার করতে পারি, আমি কেবল এটি সম্পর্কে কেবল শিখেছি):

  • আপনার পাথগুলি সাজান যাতে আপনার cdপ্রথমে গভীরভাবে নেস্ট করা ডিরেক্টরিগুলির প্রয়োজন না হয় বা বরং: তাই আপনাকে যে জায়গাগুলিতে প্রায়শই ঘুরে দেখার প্রয়োজন তা আপনার নখদর্পণে ঠিক থাকে। এটি অর্জনের উপায় হ'ল প্রতিলিপিগুলি সহ : সুস্পষ্ট, সুশৃঙ্খল ডিরেক্টরিগুলি যেমন আছে তেমন রাখুন, তবে নিজের সুবিধার্থে দ্রুত অ্যাক্সেসের লিঙ্কটি তৈরি করুন।

    ln -s ~/teams/td/tech/app/release/apks ~/apks

    তারপরে, ফিরে আসার জন্য দীর্ঘ পথটি টাইপ না করে cdকেবল ব্যবহার করুন cd ~/apksএবং cd ../teams(বা, উদাহরণস্বরূপ পছন্দসই, ~/teams) ফিরে পেতে।

  • পাথের মাঝে একা শেল এবং সিডি পিছনে পিছনে ব্যবহার করবেন না, তবে আপনাকে যে কাজ করতে হবে তার প্রতিটি পথের জন্য একটি শেল চালিয়ে রাখুন this এই মাল্টিটাস্কিংয়ের জন্য একাধিক স্তর রয়েছে:

    • একাধিক টার্মিনাল উইন্ডো ব্যবহার করুন। উইন্ডোজ বিভিন্ন ওয়ার্কস্পেসে লাইভ থাকলে সেরা কাজ করে ।
    • একক উইন্ডোতে একাধিক ট্যাব ব্যবহার করুন। এটি কয়েকটি ডিরেক্টরিতে কয়েকটি কমান্ড করার জন্য এটি বিশেষভাবে উপযুক্ত: ফিরে পেতে, টার্মিনাল ট্যাবটি কেবল বন্ধ করুন!
    • (সত্যিই বুদ্ধিমান আইএমও নয়, তবে সম্পূর্ণতার জন্য :) একটি টার্মিনাল মাল্টিপ্লেক্সার পছন্দ করুন tmux
    • কেবলমাত্র একটি একক-উদ্দেশ্যমূলক কমান্ডে একটি ক্রিয়া চালু করুন cdযা ফোল্ডারে চলে আসে, সেখানে একটি কাজ করে এবং তত্ক্ষণাত মূল ফোল্ডারে নিয়ন্ত্রণ ফিরিয়ে দেয়: পরিবর্তে

      $ cd /home/thina/teams/td/tech/app/release/apks
      $ some_command this_file_here
      $ cd ../../../../..

      কেবল ওয়ান-লাইনার করুন

      $ (cd ~/teams/td/tech/app/release/apks; some_command this_file_here)

      বা সমতুল্য

      $ sh -c 'cd ~/teams/td/tech/app/release/apks
      > some_command this_file_here'
  • না cd এ সব , কিন্তু কেবল আপনার বাড়িতে ডিরেক্টরি থেকে কমান্ড অধিকার চালানো। বন্ধনী বিস্তৃতি এখানে অনেক সাহায্য করতে পারে: পরিবর্তে

    $ cd /home/thina/teams/td/tech/app/release/apks
    $ some_command this_file_here other_file_also_apks
    $ cd ../../../../..

    আপনি করতে পারেন

    $ some_command ~/teams/td/tech/app/release/apks/{this_file_here,other_file_also_apks}

pushdখুব খুব দরকারী। আপনার উত্তরটি আরও ভাল করতে এটি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আপনি আরও তথ্য যুক্ত করতে চাইতে পারেন।
সের্গেই কোলোডিয়াজনি

@ সার্জ: হ্যাঁ, তবে আমি নিজেই কেবল উপরের জোসের উত্তর থেকে ধাক্কা জানি ।
20.3 এ বাম দিকের বাইরে

আহ, আমি এটি দেখতে। ঠিক আছে, এটি তখন ভবিষ্যতের উত্তরের জন্য কার্যকর হতে পারে।
সের্গেই কোলোডিয়াজনি

1

পুশড এবং পপড

আদেশগুলি pushdএবং popdআমার প্রিয়। pushdকমান্ড ডিরেক্টরি আপনার দেখা, নিম্নলিখিত কমান্ডের সাহায্যে দর্শনীয় স্মরণ করবে dirs, এবং যখন আপনি তিড়িং লাফ করার জন্য প্রস্তুত হন পিছন ব্যবহার popdদেখাবে।

এখানে ব্যাশ ফাংশন এবং উপকরণগুলি ব্যবহার করে একটি উদাহরণ দেওয়া হয়েছে:

sd ()
{
    pushd "$1" > /dev/null
}

po ()
{
    popd
}

alias d='dirs'

আমি ক্রমাগতভাবে বিভিন্ন উপায়ে এই আদেশগুলির মিশ্রণটি ব্যবহার করি।

ওরফে

প্রায়শই অ্যাক্সেস করা ডিরেক্টরিগুলির জন্য অন্য বিকল্পটি হ'ল কেবলমাত্র কমান্ডগুলির নাম cdবা pushdকমান্ড alias সুতরাং, আপনার পোস্টের উদাহরণগুলি ব্যবহার করে:

alias cdapks='cd /home/thina/teams/td/tech/app/release/apks'
alias cdteams='cd /home/thina/teams'

সমাহার

দুটি ধারণা একত্রিত করুন এবং আপনি এটি পেতে পারেন:

alias sdapks='sd /home/thina/teams/td/tech/app/release/apks'
alias sdteams='sd /home/thina/teams'

এরপরে যা আপনাকে ডিরেক্টরিগুলি ট্র্যাভারিংয়ে অনেক স্বাচ্ছন্দ্য দেয়। আমি রাখা cd***এবং sd***মতো জিনিসগুলির জন্য হাত alias লেখা Desktop, Documents, Music, Downloads, ইত্যাদি এবং খুব সুবিধাজনক আছে!


1

Z.lua - একটি নতুন সিডি কমান্ড চেষ্টা করুন যা আপনাকে আপনার অভ্যাসগুলি শিখার মাধ্যমে দ্রুত চলাচল করতে সহায়তা করে।

  • একটি ডিরেক্টরিতে সিডিতে ফু রয়েছে:

    z foo
  • একটি ডিরেক্টরিতে সিডি ফু দিয়ে শেষ হয়:

    z foo$
  • একাধিক যুক্তি ব্যবহার করুন:

    নিম্নলিখিত ডাটাবেস ধরে:

    10   /home/user/work/inbox
    30   /home/user/mail/inbox

    "z in"/home/user/mail/inboxউচ্চতর ওজনযুক্ত এন্ট্রি হিসাবে সিডি হবে । তবে আপনি আলাদা এন্ট্রি পছন্দ করতে z.lua এ একাধিক যুক্তি পাস করতে পারেন। উপরের উদাহরণে,"z w in" এরপরে ডিরেক্টরিটি পরিবর্তন করতে হবে /home/user/work/inbox

  • ইন্টারেক্টিভ নির্বাচনের সাথে সিডি:

    যখন একাধিক মিল খুঁজে পাওয়া যায়, তখন z -iএকটি তালিকা প্রদর্শন করবে:

    $ z -i soft
    3:  0.25        /home/data/software
    2:  3.75        /home/skywind/tmp/comma/software
    1:  21          /home/skywind/software
    > {CURSOR}

    তারপরে আপনি নম্বরটি ইনপুট করতে পারেন এবং প্রকৃত সিডির আগে কোথায় যেতে হবে তা চয়ন করতে পারেন। যেমন। ইনপুট 3 থেকে সিডি/home/data/software । এবং যদি আপনি কেবল ENTER টিপুন এবং কিছুই ইনপুট করেন না, এটি কেবল প্রস্থান করবে এবং আপনি যেখানে ছিলেন সেখানেই থাকবে।

    z.lua সমর্থন করে fzfইন্টারেক্টিভ নির্বাচন বা যুক্তি সমাপ্তির জন্য :

    fzf দিয়ে সমাপ্তি

  • টাইপ না করে দ্রুত পিতামাতার কাছে ফিরে যান cd ../../.. :

    নতুন বিকল্পটি "-b"দ্রুত "সিডি ../../ .. .." টাইপ না করে বাশের নির্দিষ্ট প্যারেন্ট ডিরেক্টরিতে ফিরে যেতে পারে:

    • (কোন যুক্তি নেই) : cdপ্রকল্পের মূলের মধ্যে, প্রকল্পটি .git/ .hg/ এর সাথে নিকটতম অভিভাবক ডিরেক্টরিকে রুট করে .svn

    • (একটি যুক্তি) : cdকীওয়ার্ড দিয়ে শুরু হওয়া নিকটতম পিতামাতার মধ্যে, যদি খুঁজে না পাওয়া যায় তবে কীওয়ার্ডযুক্ত পিতামাতার কাছে যান।

    • (দুটি যুক্তি) : দ্বিতীয়টির সাথে প্রথম মানটি প্রতিস্থাপন করুন (বর্তমান পথে)

    ...

    এর সাথে আলিয়া z -bদিয়ে শুরু করা যাক zb:

    # go all the way up to the project root (in this case, the one that has .git in it)
    ~/github/lorem/src/public$ zb
      => cd ~/github/lorem
    
    # cd into to the first parent directory named g*
    ~/github/vimium/src/public$ zb g
      => cd ~/github
    
    # substitute jekyll with ghost
    ~/github/jekyll/test$ zb jekyll ghost
      => cd ~/github/ghost/test

এটি আপনার প্রয়োজন মাপসই করতে চান।


0

মাছ দ্রুত ঘুরে বেড়ানোর জন্য বেশ কয়েকটি দুর্দান্ত সুবিধা রয়েছে।

  • আপনি সিডি ডান-তীর প্রবেশ লিখুন, এটি সর্বাধিক সাম্প্রতিক সিডি পুনরাবৃত্তি করে।
  • সিডি আপ-তীর ডান-তীর প্রবেশ ব্যবহার করে, এটি দ্বিতীয় সর্বাধিক সাম্প্রতিক সিডি পুনরাবৃত্তি করে।
  • প্রভৃতি
  • এটি পূর্ববর্তী এবং পরবর্তী অবস্থানে রয়েছে, যা প্রায়শই পুশ এবং পপড ব্যবহার করা সহজ।

এছাড়াও, আমি আমার পছন্দসই ডিরেক্টরিগুলি ~ / f এর সাথে সংযুক্ত করে রাখি, তাই আমি সিডি করতে পারি ~ / foo / বার / বাজ / পরীক্ষামূলক-ডেটা পেতে


0

আমি দীর্ঘসময় ঘন ঘন অ্যাক্সেস করা ডিরেক্টরিগুলির জন্য উপকরণ ব্যবহার করেছি।

আমার কাছে সিসিবি নামে একটি বাশ ফাংশনও রয়েছে (সিডি ব্যাট ফাইল তৈরির জন্য সংক্ষিপ্ত - এটি ডস / উইন্ডোতে উত্পন্ন যেখানে .bat শেল স্ক্রিপ্ট ccb.bat বর্তমান ডিরেক্টরিতে জাম্পের জন্য আরেকটি .bat ফাইল তৈরি করবে) যা উপকরণ তৈরি / সংযোজন করে s (.bash_aliases ফাইলে) বর্তমান ডিরেক্টরিতে।

উদাহরণস্বরূপ: c সিসিবি মাইফাভ বর্তমান ডিরেক্টরীতে একটি ব্যাবহার করে .বাশ_লিয়াস ফাইলগুলিতে একটি উপন্যাস মাইফাভ তৈরি করবে এবং উত্স .bashrc ফাইলটি উত্সাহিত করবে যাতে উপনামটি তাত্ক্ষণিকভাবে উপলব্ধ।

আমি এখনই একটি নতুন সমাধান খুঁজে পেয়েছি। এটি একটি বাশ ফাংশন

## USAGE : lj <your_dir>
### lj -- short for LongJump -- (kinda similar to a C function which would jump to an address outside of your current function)
function lj() {
        pushd `find . -type d -name $1 -print | head -n 1`
}

$ lj deeply_nested_dir_name

এর আগের ব্যবহার থেকে কিছু শেখার দরকার নেই। যে সমস্যাটি এটি সমাধান করতে পারে না তা হ'ল: সাব ডিরেক্টরি ডিরেক্টরিতে যদি "গভীর_নেস্টড_ডির_নাম" নামের 1 টিরও বেশি ডিরেক্টরি থাকে, তবে এটি অনুসন্ধানের দ্বারা পাওয়া ডিরেক্টরিটির 1 ম-তে চলে যাবে।

এছাড়াও, এই সমাধানটি অন্য কোনও ডিরেক্টরি ট্রিতে যেতে সক্ষম হবে না।

হার্ডকোডযুক্ত এলিয়াস এবং উত্পন্ন উপকরণ এবং এই নতুন lj () ফাংশনের মধ্যে আমার বেশিরভাগ প্রয়োজনের যত্ন নেওয়া হয়।

যে কেউ এটি ব্যবহার করতে চায় তার জন্য এখানে আমার সিসিবি () বাশ ফাংশন

function ccb() {
        foo=$PWD
        echo "" >> ~/.bash_aliases
        echo "alias $1='pushd $foo > /dev/null'" >> ~/.bash_aliases
        source ~/.bashrc
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.