প্রদত্ত ডিরেক্টরিতে স্যুইচ করার জন্য শর্ট-কাট


12

উবুন্টু টার্মিনালে আমি কম্পিউটারটি প্রতিবারই শুরু হওয়ার সাথে সাথে একটি নির্দিষ্ট ডিরেক্টরিতে স্যুইচ করতে যথেষ্ট সময় ব্যয় করতে দেখি। আমি এই প্রক্রিয়াটিকে আরও সহজ করার কোনও উপায় আছে? আমি ব্যবহার করতে পারি এমন কিছু হটকি বা কিছু দ্রুত ডিরেক্টরি পরিবর্তন আছে (যেমন ফোনে স্পিড ডায়াল)?

 eg:
    cd 1:Changes to saved directory one

চার বছর পরে এই প্রশ্ন জিজ্ঞাসা করা হয়েছিল এবং আজ অবধি কেউ সিডিপ্যাথের উল্লেখ করেনি। :(
কোজিরো

আমি মনে করি এটি আপনার কনসোলের উপর নির্ভর করতে পারে তবে কুবুন্টু টার্মিনালে একটি বুকমার্কস মেনু রয়েছে যেখানে আমি কেবল একটি ডিরেক্টরি বুকমার্ক করতে পারি এবং সেভাবে সেখানে যেতে পারি!
পিক্সেল

উত্তর:


12

দুটি বিকল্প রয়েছে:

  1. আপনি যদি প্রতিবার বার ব্যাশ টার্মিনালটি খোলার জন্য কোনও নির্দিষ্ট ডিরেক্টরিতে থাকতে চান ~/.bashrcতবে আপনার ফাইলটি সম্পাদনা করুন এবং cd Directoryউদাহরণস্বরূপ কেবল লাইনটি যুক্ত করুন cd ~/Desktop

  2. যদি আপনি কয়েকটি শর্ট-কাট করতে চান তবে আপনি সর্বদা বিশ্বব্যাপী ভেরিয়েবলগুলি ব্যবহার করতে পারেন যা আপনি নিজের ~/.bashrcফাইলটিতে নিম্নলিখিত হিসাবে সেট করতে পারেন export a=/tmpএবং তারপরে আপনি এটি করতে সক্ষম হবেন cd $aযা আপনাকে এনে দেবে /tmp

মনে রাখবেন যে আপনার .bashrcফাইল সম্পাদনা করার পরে আপনাকে টার্মিনালটি পুনরায় চালু করতে হবে বা একটি নতুন খুলতে হবে।


3
টার্মিনালটি পুনরায় আরম্ভ করা এড়াতে আপনি source ~/.bashrcবা সংক্ষিপ্ত, ব্যবহার করতে পারেন . ~/.bashrc
জেরহার্ড বার্গার

18

এছাড়াও একবার দেখুন autojump, এটি পূর্বে পরিদর্শন করা ডিরেক্টরিগুলির সাথে একটি ডাটাবেস তৈরি করে এবং তারপরে আপনি এটিতে লাফিয়ে উঠতে পারেন। উদাহরণস্বরূপ আপনার আছে

/home/user/this/long/and/annoyingly/deep/directory/workstuff

তারপরে যদি আপনি একবার এটি ঘুরে দেখেন তবে আপনি এটিতে লাফিয়ে উঠতে পারেন

j workstuff

অথবা এমনকি

j stuff

কারণ এটি আংশিক ম্যাচগুলির সাথেও কাজ করে। যদি একাধিক ডিরেক্টরি মেলে আপনি সর্বাধিক পরিদর্শন করা একটিতে ঝাঁপ দেন, এটি যদি আপনি চান না, তবে দ্বিতীয়টিতে যাওয়ার আদেশটি পুনরাবৃত্তি করুন।

তবে এটি আরও ভাল হয়! আপনি যদি ডিরেক্টরি আছে

/home/user/stuff

এবং তুমি কর

j stuff 

এবং তারপরে TabTabTabআপনি পাবেন (সর্বাধিক পরিদর্শনের ক্রম অনুসারে)

$ j stuff__
stuff__1__/home/user/this/long/and/annoyingly/deep/directory/workstuff
stuff__2__/home/user/stuff

এবং তারপরে আপনি যে ডিরেক্টরিটি চান তা কেবল চাপতে পারেন!

ইনস্টল করতে আপনি কেবল ব্যবহার করতে পারেন sudo apt-get install autojumpএবং তারপরে আপনাকে যুক্ত করতে হবে

source /usr/share/autojump/autojump.bash

আপনার ~/.bashrc

এখানে আরও তথ্য: https://github.com/wting/autojump (এসসিআর থেকে এটি কীভাবে ইনস্টল করবেন সে সম্পর্কেও নির্দেশনা যা আপনাকে সর্বশেষতম সংস্করণ দেয়)


1
টার্মিনালে crtl + r পূর্ববর্তী কমান্ডগুলিতে "আংশিক মিলগুলি" সন্ধান করে। সত্যিই খুব সহজ।
ড্যান

6

সাধারণত চালিত কমান্ডগুলির শর্ট-কাট তৈরির জন্য ব্যাশ অ্যালিয়াসগুলি কার্যকর।

  • ইন ~/.bashrc, উপনামটি তৈরি করতে নীচের মতো একটি লাইন যুক্ত করুন:

    alias jump1='cd /long/path/name/that/is/frequently/used'
    
  • টার্মিনালটি বন্ধ করে আবার খুলুন, বা রান করুন source ~/.bashrc

  • এখন থেকে, আপনি কেবল jump1এই দীর্ঘ cdকমান্ডটি চালিত করতে চালাতে পারেন ।

আরো দেখুন:


4

যদিও ইতিমধ্যে কিছু ভাল উত্তর রয়েছে, আমি ভেবেছিলাম আমি পুরানো pushdএবং popdবাশ বিল্টিনগুলির সম্পূর্ণতার জন্য উল্লেখ করব যাতে আপনি আপনার ফাইল সিস্টেমের গভীর পাথের ডিরেক্টরিগুলির মধ্যে খুব দ্রুত চলে যেতে পারেন move বার্গার.গাautojump দ্বারা উল্লিখিত বুকমার্কগুলির বিপরীতে , ব্যবহার করে তৈরি করা ডিরেক্টরি স্ট্যাকটি কেবল অস্থায়ী।pushd

GNU ম্যানুয়াল হিসাবে নোটস হিসাবে , pushdএবং popdবাশ বিল্টইনগুলি একটি অস্থায়ী ডিরেক্টরি স্ট্যাক নির্মাণ করতে ব্যবহৃত হয় যা একটি a

সম্প্রতি পরিদর্শন করা ডিরেক্টরিগুলির তালিকা। পুশড বিল্টইন বর্তমান ডিরেক্টরি পরিবর্তন করার সাথে সাথে স্ট্যাকগুলিতে ডিরেক্টরিগুলি যুক্ত করে এবং পপড বিল্টইন স্ট্যাক থেকে সুনির্দিষ্ট ডিরেক্টরিগুলি সরিয়ে এবং বর্তমান ডিরেক্টরিটিকে ডিরেক্টরিটিকে সরিয়ে ফেলা ডিরেক্টরিতে পরিবর্তন করে। ডায়ার্স অন্তর্নির্মিত ডিরেক্টরি স্ট্যাকের সামগ্রী প্রদর্শন করে।

এতে অভ্যস্ত হতে খানিকটা সময় লাগে, তবে উদাহরণস্বরূপ এই ব্লগ এবং এই সাইটে এখানে প্রচুর দরকারী টিউটোরিয়াল রয়েছে । কমান্ডগুলির জন্য আলাদা ম্যানপেজ নেই, কারণ এগুলি ব্যাশ ম্যানপেজে অন্তর্ভুক্ত রয়েছে, তবে দ্রুত রেফারেন্সের জন্য আপনি জিএনইউ বাশ পৃষ্ঠাটি দেখতে পারেন ।

এর স্পষ্ট ব্যাখ্যাটি খুব দরকারী এই নিবন্ধে এবং ঠিক আমি যেভাবে ব্যবহার করি pushdএবং এটি popd:

প্রথমত, স্ট্যাকের ডিরেক্টরিগুলি ব্যবহার করুন dirsবা dirs -lস্ট্যাকটি dirs -cসাফ করুন।

এক অর্থে আপনি যে জায়গাতে প্রবেশ করে ফিরে যেতে চান সেখানে বুকমার্ক করুন

pushd /home/mike/Pictures/Canon/2012_07_01

এবং তারপরে আপনি স্ট্যাকটিতে আরও ডিরেক্টরি যুক্ত করতে পারেন, তাই নীচের মত আপনি একটি ডায়ার তালিকা পাবেন, যার মধ্যে 3 মনোনীত ফোল্ডার এবং আপনার ~হোম ফোল্ডার অন্তর্ভুক্ত রয়েছে :

dirs
~/Downloads/folder/interest ~/Music/artist/album ~ ~/Pictures/Canon/2012_07_01

আপনাকে popdসরাসরি সরাসরি ব্যবহার করার দরকার নেই কারণ এটি স্ট্যাক থেকে ডিরেক্টরিগুলি সরিয়ে দেয়; করণীয় হ'ল সর্বোত্তম কাজ হ'ল pushdস্ট্যাকটি ঘোরানো, যাতে আপনি ডিরেক্টরিগুলির মধ্যে স্যুইচিং চালিয়ে যেতে পারেন এবং আপনার পছন্দ মতো সেগুলি অর্ডার করতে পারেন। সেই দরকারী স্ট্যাক রোটেশনের আরও তথ্যের জন্য বাশ মানচিত্রটি দেখুন

যদি আপনার উপরের dirsতালিকাটি pushd +3ঠিকঠাক শোয়ের মতো স্ট্যাকের ব্যবস্থা থাকে তবে আপনাকে নির্দিষ্ট ছবি ফোল্ডারে স্যুইচ করে এবং স্ট্যাকের শীর্ষে স্থানগুলি (এটি +3 এবং +4 নয় কারণ আপনি ~ডিরেক্টরিটি স্ট্যাকটিতে গণনা করেননি ):

pushd +3
~/Pictures/Canon/2012_07_01 ~/Downloads/folder/interest ~/Music/artist/album ~

সুতরাং প্রম্পটটি পড়ে,

~/Pictures/Canon/2012_07_01$

আপনি স্ট্যাকটি অপসারণ ছাড়াই এটি করা চালিয়ে যেতে পারেন, যদিও cdডিরেক্টরি স্ট্যাকের সাথে যুক্ত ফোল্ডারগুলি ছাড়া আপনার অন্য কোনও ফোল্ডার pushdআপনার ডিরেক্টরি স্ট্যাকটিকে পরিবর্তন করে দেবে।

আপনি একবার ডিরেক্টরি স্ট্যাকটি নিজের পছন্দ অনুযায়ী সাজিয়েছেন, আপনি popdডিরেক্টরিগুলি দিয়ে দ্রুত চক্রটি ব্যবহার করতে পারেন এবং তারপরে হোম ফোল্ডারে ফিরে যেতে পারেন; উদাহরণস্বরূপ, থেকে Picturesআমরা ফিরে আসতে পারি Downloads:

popd
~/Downloads/folder/interest ~/Music/artist/album ~

এবং প্রম্পট পড়া

~/Downloads/folder/interest$

সাধারণভাবে এর সৌন্দর্যটি হ'ল আপনি ডিরেক্টরি স্ট্যাক এবং আইটেমগুলির ক্রমটি এর সাথে pushdএবং তারপরে সেটআপ করতে পারেন এবং বলুন যে আপনি সেই ডিরেক্টরিগুলির প্রত্যেকটিতে সম্পাদনা করার জন্য তিনটি ফাইল popdরেখেছেন, সেগুলি মুছে ফেলার সাথে সাথে আপনি প্রত্যেকটির সাথে তাত্ক্ষণিকভাবে ফিরে আসতে পারেন ডিরেক্টরি স্ট্যাক থেকে। তারপরে আপনার শেষের সাথে popdআপনি ফিরে আসবেন ~। এটি বিশেষত কার্যকর হয় যখন আপনার বিশেষত গভীর ডিরেক্টরি থাকে এবং এটি তাদের মধ্যে দ্রুত স্থানান্তরিত করতে ডিরেক্টরি স্ট্যাক সেট আপ করতে ব্যবহার করতে পারেন।

তদতিরিক্ত, এই প্রশ্নটিতে কয়েকটি টিপস রয়েছে যা কমান্ড-লাইনে কাজ করার সময় আপনাকে দরকারী মনে হতে পারে:


2

এটি দ্রুত করার জন্য কিছু কমান্ড লাইন উপায় বিদ্যমান থাকলেও, আমি ব্যক্তিগতভাবে একটি নটিলাস এক্সটেনশান নামে ডাকে পুনঃসংশোধন করব nautilus-open-terminal

প্রথমে প্যাকেজটি ইনস্টল করুন nautilus-open-terminalএবং নটিলাসের সাথে আপনার প্রিয় ফোল্ডারগুলি বুকমার্ক করুন। নটিলাস ৩.6। * তে আপনাকে গিয়ার মেনুতে যেতে হবে এবং এই অবস্থানটি বুকমার্ক নির্বাচন করতে হবে ।

এখানে চিত্র বর্ণনা লিখুন

তারপরে আপনার পছন্দসই ডিরেক্টরিতে দ্রুত যেতে নটিলাস বুকমার্কগুলি ব্যবহার করুন এবং খালি জায়গায় ডান ক্লিক করুন এবং টার্মিনালে খুলুন নির্বাচন করুন ।

এখানে চিত্র বর্ণনা লিখুন

এখন আপনার কমান্ড লাইন এবং ফাইল ম্যানেজার উভয়ই আপনার পছন্দসই ডিরেক্টরিগুলিতে দ্রুত অ্যাক্সেস পেতে পারেন।


মূল পোস্টারটি টার্মিনাল থেকে কাজ করার চেষ্টা করছে এবং টার্মিনাল থেকে এটি প্রায়শই দ্রুত হয়।
হিজিজ

1
@ হাজিজ: হ্যাঁ, তবে আসুনউবুন্টু প্রশ্ন ও উত্তরগুলি কেবল ওপি-র ক্ষেত্রেই নয়, বিশেষত ওয়েবে এটি পাওয়া সমস্ত লোকের জন্যই কার্যকর হওয়া উচিত। এটি আমার জন্য একটি মূল্যবান উত্তর।
জাভিয়ের রিভেরা

2

anc ঠিক সেই ব্যবহারের ক্ষেত্রে তৈরি করা হয়েছিল।

https://github.com/tobimensch/anc

এখানে README.md এর একটি অংশ রয়েছে:

# make the current directory the default anchor:
$ anc s

# go to /etc, then /, then /usr/local and then back to the default anchor:
$ cd /etc; cd ..; cd usr/local; anc

# go back to /usr/local :
$ anc b

# add another anchor:
$ anc a $HOME/test

# view the list of anchors (the default one has the asterisk):
$ anc l
(0) /path/to/first/anchor *
(1) /home/usr/test

# jump to the anchor we just added:
# by using its anchor number
$ anc 1
# or by jumping to the last anchor in the list
$ anc -1

# add multiple anchors:
$ anc a $HOME/projects/first $HOME/projects/second $HOME/documents/first

# use text matching to jump to $HOME/projects/first
$ anc pro fir

# use text matching to jump to $HOME/documents/first
$ anc doc fir

# add anchor and jump to it using an absolute path
$ anc /etc
# is the same as
$ anc a /etc; anc -1

# add anchor and jump to it using a relative path
$ anc ./X11 #note that "./" is required for relative paths
# is the same as
$ anc a X11; anc -1

# using wildcards you can add many anchors at once
$ anc a $HOME/projects/*

# use shell completion to see a list of matching anchors
# and select the one you want to jump to directly
$ anc pro[TAB]

সম্পূর্ণ প্রকাশ: আমি anc এর লেখক।


1

আপনি আপনার .bashrc ফাইলটিতে একটি নাম রাখতে পারেন (বা আপনার প্রিয় শেলগুলির জন্য কনফিগার ফাইল-এগুলি সাধারণত আপনার হোম ডিরেক্টরিতে থাকে):

alias cd1="cd directory/directory/my_destination/"

ব্যাশে এলিয়াস ব্যবহার সম্পর্কে দরকারী তথ্য লিঙ্কটি এখানে


1

আমি এটির জন্য বাশ ফাংশনের একটি সেট তৈরি করেছি এবং এটি আমার .বাশ_ প্রোফাইলে যুক্ত করেছি

লিপি

goto(){
    cd $(getFolders $1)
}

gf(){
    getFolders $1
}

getFolders (){

    local folderList=(
     'alias'
     'Description of alias'
     '/path/to/alias/folder'
     'alias2'
     'Description of alias2'
     '/path/to/alias2/folder'
    )
    local moved="0"
    local count=0

    # Returns the path to the project
    while [ "${folderList[count]}" != "" ]
    do
        if [ "$1" == "${folderList[count]}" ]; then
            echo ${folderList[$(( $count + 2 ))]}
            moved="1"
        fi
        count=$(( $count + 3 ))
    done

    # Returns all project names
    if [ "$moved" != "1" ]; then
        count=0
        while [ "${folderList[count]}" != "" ]
        do
            echoc 6 ${folderList[count]}
            echo - ${folderList[count+1]}
            count=$(( $count + 3 ))
        done
    fi
}

ব্যবহার

getFolders

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

ফোল্ডার পাথ পাওয়ার উদাহরণ

getFolders alias

আউটপুট

/path/to/alias/folder

উপলব্ধ ফোল্ডার প্রাপ্তির উদাহরণ।

getFolders

আউটপুট

alias
- Description of alias
alias2
- Description of alias2

জিএফ

জিএফ হ'ল getFolders এর শর্টকাট

gf alias2

আউটপুট

/path/to/alias2/folder

যাও

গেটো নির্বাচিত ফোল্ডারে সিডি করার একটি সহজ উপায়।

goto alias

আউটপুট

সিডি / পাথ / টু / উপস / ফোল্ডারে চলেছে

/ পথ / থেকে / ওরফে / ফোল্ডার>

কেন একাধিক ফাংশন আছে

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


0

আপনার .bashrc বা .bash_profile এ CDPATHপরিবেশের পরিবর্তনশীল সেট করার কথা বিবেচনা করুন । CDPATH অন্যান্য PATHভেরিয়েবলগুলির মতো একই কোলন-সীমিত আকার নেয় cdএবং আপনার ডিরেক্টরিগুলি সন্ধানে শর্টকাট নিতে দেয় । উদাহরণ স্বরূপ:

$ mkdir -p /tmp/foo/bar/baz
$ CDPATH='/tmp/foo/bar'
$ cd baz
/tmp/foo/bar/baz

0

আপনি একটি নির্দিষ্ট ডিরেক্টরিতে নিজের শর্টকাট সেট আপ করতে পারেন। উদাহরণস্বরূপ আপনি নেস্টেড ডিরেক্টরিতে যেতে চান, সাধারণত আপনি করেন

সিডি / বাড়ি / দির -১ / দির -২ / দির ৩ / দির ৪ / দির ৫ / দির / / দির-লক্ষ্য

আপনি সাধারণত সিডি কমান্ডটি ব্যবহার করেন এবং তারপরে সমস্ত ডিরেক্টরিটির নাম টাইপ করুন বা আপনি টাইপিং এড়িয়ে যেতে পারেন (ট্যাব বোতাম ব্যবহার করে) তবে এটি আপনার কয়েক মিনিট সময় নেয়।

সুতরাং, আপনার সময় বাঁচাতে আপনি টার্মিনালে এটির একটি উপাধি তৈরি করতে পারেন । ওরফে সেট আপ করা এটি এক সময়ের কাজ।

ওরফে দির-টার্গেট = '/ বাসা / দির -১ / দির -২ / দির ৩ / দির ৪ / দির ৫ / দির / / দির-লক্ষ্য'

এখন, আপনার টার্গেট ডিরেক্টরিতে স্থানান্তর করতে আপনাকে কেবল নাম নাম ( dir-લક્ષ્ય ) ব্যবহার করতে হবে।


0

আমি যে দ্রুততম xdপথটি পেয়েছি তা হ'ল , ফ্র্যাঙ্ক বি ব্রোককেন নামে একজন ডাচম্যানের লেখা "" এক্সচেঞ্জ ডিরেক্টরি "প্রোগ্রাম।

এটি আপনার ফাইল সিস্টেমে এমন সমস্ত পাথ সন্ধান করে কাজ করে যা আপনার টাইপ করা সংক্ষিপ্তসার সমাধান করতে ulbপারে , উদাহরণস্বরূপ /usr/local/binযদি এই ধরনের ফোল্ডারটি আপনার সিস্টেমে থাকে তবে তা দাঁড়াতে পারে :

% cx ulb
Multiple Solutions:
 1: /usr/lib/binfmt.d/
 2: /usr/local/bin/

2 টিপতে আপনি ভিতরে রয়েছেন /usr/local/bin

এটি সত্যই পুরানো সফ্টওয়্যার এবং আর কোনও মূল স্থানে পাওয়া যায় না, লেখকের সাথে যোগাযোগ হয় না, যাতে এটি হারিয়ে যেতে না পারে, আমি এটিকে গিথুব রেপোতে রেখেছি:

https://github.com/mrkafk/exchange_directories


-1

আমি এটি করার জন্য ডিরবি (ডিরেক্টরি বুকমার্কস) ব্যবহার করি। খুব সুন্দর! http://www.linuxjournal.com/article/10585

আমি আমার স্বাদ অনুসারে আমার পরিবর্তন করেছি এবং যদিও ব্যবহার করা সহজ এবং পরিষ্কার হতে পারে।


উবুন্টুকে জিজ্ঞাসা করুন স্বাগতম! যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
ফসফ্রিডম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.