আমি কীভাবে একটি ডিরেক্টরি তৈরি করতে পারি এবং আমার কার্য ডিরেক্টরিকে নতুন ডিরেক্টরিতে পরিবর্তন করতে পারি?


18

আমি কেবল একটি একক কমান্ড ব্যবহার করে ডিরেক্টরি তৈরি এবং আমার বর্তমান কার্য ডিরেক্টরিটি নতুন নির্মিত ডিরেক্টরিতে পরিবর্তন করার উপায় খুঁজছি seeking কিভাবে আমি এটি করতে পারব?

অর্থাত্ পরিবর্তে করণীয়

user@Computer:~$ mkdir NewDirectory
user@Computer:~$ cd NewDirectory
user@Computer:~/NewDirectory$ 

আমি করতে চাই

user@computer:~$ **command** NewDirectory
user@Computer:~/NewDirectory$

কি করতে কমান্ড হবে?

উত্তর:


27

আপনি যদি সত্যিই এটি কেবল একটি আদেশ হতে চান তবে আমি আপনাকে এ জাতীয় কিছু যুক্ত করার পরামর্শ দিচ্ছি .bashrc:

md () { mkdir -p "$@" && cd "$1"; }

md fooকমান্ড লাইনে প্রবেশ করার পরে একটি ডিরেক্টরি বলা হবে fooএবং এর cdপরেই তা এতে প্রবেশ করবে। দয়া করে মনে রাখবেন, .bashrcপরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে নিজের পুনরায় লোড করতে হবে (যেমন একটি নতুন কনসোল খুলুন, বা রান করুন source ~/.bashrc)।

Cf. http://www.commandlinefu.com/commands/view/3613/create-a-directory-and-change-into-it-at-the-same- সময় সম্ভাব্য বিকল্পগুলির জন্যও।


19

mkdir "NewDirectory" && cd "NewDirectory"

  • &&1 তম কমান্ড সফল হলে কেবল উইলের পিছনের অংশটি কার্যকর করা হবে।
  • এটিকে বাশ ম্যানুয়ালটিতে তালিকাভুক্ত কমান্ড বলা হয় ।
  • একটি শর্টহ্যান্ড সংস্করণও রয়েছে:

    mkdir "NewDirectory" && cd "$_"
    
  • কমান্ড লাইন থেকে উদাহরণ:

    $ false && echo "yes"
    $ true && echo "yes"
    yes
    
  • (সম্পাদনা করুন) "কমান্ডগুলিতে যুক্ত করুন" যেহেতু ডিরেক্টরিতে কোনও স্থান থাকতে পারে।


mkdir "NewDir" && cd "$_"mkdir "NewDir" && cd "NewDir"অটো সম্পূর্ণ কাজ করে না তার চেয়ে দুর্দান্ত কাজ করে। বিটিডব্লিউ "$ _" কি?
থোকোজুফ্যাক্ট

এর চেয়ে বেশি এটি কার্যকর হবে যদি আমরা mkdirতৈরি নতুন ডিরেক্টরিতে পরিবর্তনের জন্য একটি স্যুইচ সংযুক্ত করতে পারি ।
থোকোজুফ্যাক্ট

@ দ্য কেজুএফেক্ট $ _ দেখুন gnu.org/software/bash/manual/bashref.html# এই শেষের তালিকাগুলি : অভ্যন্তরে কোনও নাম বা কোনও ফাংশন ব্যবহার করা আপনাকে কেউ বাধা .bashrc
দিচ্ছে না

7

এর জন্য কোনও অন্তর্নির্মিত ফাংশন নেই, তবে cdচালানোর পরে আপনাকে কমান্ডটির যুক্তি আবার टाइप না করতে সহায়তা করতে আপনি শেল কার্যকারিতা ব্যবহার করতে পারেন mkdir:

  • প্রকার cd , তারপর Esc .(অথবা Alt+ + .) পূর্ববর্তী হুকুম থেকে গত যুক্তি সন্নিবেশ করতে।
  • cd !$cdপূর্ববর্তী কমান্ডের সর্বশেষ যুক্তি প্রয়োগ করে exec
  • প্রেস Upপূর্ববর্তী কমান্ড লাইন প্রত্যাহার, তারপর সম্পাদনা এটিকে পরিবর্তন করতে mkdirবা cd

আপনি নিজের মধ্যে একটি সাধারণ মেক-অ্যান্ড চেঞ্জ-ডিরেক্টরি ফাংশনটি সংজ্ঞায়িত করতে পারেন ~/.bashrc:

mkcd () { mkdir "$1" && cd "$1"; }

আপনার .bashrc( . ~/.bashrc) পুনরায় লোড করুন বা ব্যাশ পুনরায় চালু করুন, এবং এখন আপনি টাইপ করতে পারেন mkcd new-directory

এই সাধারণ সংস্করণটি অদ্ভুত ডিরেক্টরিগুলির নাম বা ..প্রতীকী লিঙ্কগুলি জড়িত কিছু অস্বাভাবিক ক্ষেত্রে ব্যর্থ । এখানে যে এক। ব্যাখ্যার জন্য, এই প্রশ্নের ইউনিক্স এবং লিনাক্স সংস্করণটি দেখুন

mkcd () {
  case "$1" in
    /*) mkdir -p "$1" && cd "$1";;
    */../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "$1";;
    ../*) (cd .. && mkdir -p "${1#.}") && cd "$1";;
    *) mkdir -p "./$1" && cd "./$1";;
  esac
}

আমার +1 বিশেষত শেষ কমান্ডের যুক্তিগুলির জন্য বাশ-নির্দিষ্ট উল্লেখের জন্য for
0xC0000022L

ওভার ইঞ্জিনিয়ারিংয়ের জন্য +1। এক্সেলসীয়র! :)
মেহভেলপ্লুন্ড

3
mkdir -p "as/many dirs/as you/want" && cd "$_"

উপরে তালিকাভুক্ত একটি সমাধান রয়েছে (আমার সমাধানের মতো তবে নো-পি বিকল্পের সাহায্যে) তবে আমি মনে করি এটির কয়েকটি অসুবিধা রয়েছে।

man mkdir
...
-p, --parents
       no error if existing, make parent directories as needed
...

এটি আমাদের দুটি সুবিধা দেয়:

  1. আমরা একসাথে প্রয়োজনীয় যতগুলি সাব-ডাইরেক্টরি তৈরি করতে পারি
  2. ডিরেক্টরি যদি বিদ্যমান থাকে তবে এটি ত্রুটি ছুঁড়ে ফেলবে না এবং আমরা এখনও বিদ্যমান ডিরেক্টরিতে স্যুইচ করতে সক্ষম হব।

&& cd "$_"নতুনটি তৈরি ডিরেক্টরিতে পরিবর্তিত হবে, যেহেতু $_মানটি আমার কাছে ফিরিয়েছেmkdir


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