নামটি কেবল একটি বিয়োগ হিসাবে আপনি কোনও ডিরেক্টরি কীভাবে প্রবেশ করবেন?


26

আমি আমার ওয়েব সার্ভারে লেটেন ডাউনলোড করেছি এবং এটি আনজিপ করেছি।

এটিতে একটি ফোল্ডার রয়েছে -। আমি ধরে নিয়েছি যে আমি কীভাবে এটি মোকাবেলা করতে জানি তবে তা করি না।

আমি চেষ্টা করেছি cd -- -, তবে এর কাঙ্ক্ষিত প্রভাব নেই। উদ্ধৃতি ব্যবহার করলে তা প্রভাবিত হয় না বলে মনে হয়। আমি পুরো জায়গা জুড়ে স্ল্যাশ রেখেছি, কোনও লাভ হয়নি।

এই ফোল্ডারে পরিবর্তন করার উপযুক্ত উপায় কী?

উত্তর:


34

আপনি এটিকে প্যারামিটার হওয়া থেকে বাঁচতে চান, সুতরাং আমরা এটিতে কিছু যুক্ত করার চেষ্টা করি। বর্তমান ডিরেক্টরিটি অ্যাক্সেস করা যায় ., এইভাবে সাবফোল্ডারটি -বিকল্পভাবে অ্যাক্সেস করা যায় ./-

cd ./-

cd -- -কাজ না করার কারণটি হ'ল এটি ভিন্নভাবে প্রয়োগ করা হয় যদি আপনি rm(দেখুন man rm) সাথে cd(দেখুন man bashবা man cd) তুলনা করেন , cdএর আলাদা ব্যাখ্যা রয়েছে যা -প্যারামিটার হিসাবে দেখায় (দেখুন man bashবা man cd)।

এটিও লক্ষ করা উচিত যে cdএটি একটি শেল বিল্টিন ফাংশন, যা এই উত্তরে পড়তে পারে :

cdএটি বাহ্যিক আদেশ নয় - এটি শেল বিল্টিন ফাংশন। এটি বর্তমান শেল প্রসঙ্গে চালিত হয়, এবং বহিরাগত কমান্ডগুলি যেমন পৃথক প্রক্রিয়া হিসাবে কাঁটাচামক / নির্বাহী প্রসঙ্গে না, তা নয়।

একটি বাহ্যিক cdআদেশ আছে, তবে এটি সম্পূর্ণ আলাদা কিছু করে ।

এটি ব্যাখ্যা করে কেন বাস্তবায়ন আলাদা, কারণ বাশ এবং কোরিটিল দুটি পৃথক জিনিস।

আসুন শুধু ধরুন আপনি এটি বিশ্বাস করেন না, আমরা কীভাবে এটি নিশ্চিত করব? ব্যবহার করুন whichএবং type

 $ which cd && type cd
which: no cd in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.2:/usr/games/bin
cd is a shell builtin
 $ which rm && type rm
/bin/rm
/bin/rm is /bin/rm

দেখুন man whichআরও তথ্যের জন্য, এবং man bashবা man typeজন্যtype


4
না, "-" সমস্ত স্ট্যান্ডার্ড ইউটিলিটিগুলিতে প্রয়োগ করা হয় তবে এটি বিকল্পগুলি শেষ করার জন্য বোঝানো হয়। "-" একা বিকল্প হিসাবে নয় তবে পূর্ববর্তী ডিরেক্টরি হিসাবে স্বীকৃত।
স্টাফেন চেজেলাস

4
সঠিক সমাধান, তবে ব্যাখ্যাটি ভুল। এটি সম্পূর্ণরূপে অপ্রাসঙ্গিক যা cdএকটি অন্তর্নির্মিত। cd -- -কাজ না করার কারণটি -হল অপারেন্ড, কোনও বিকল্প নয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
ম্যাক ওএস এক্স-এ cd -- -আপনাকে -বর্তমান ডিরেক্টরিতে নামের একটি ডিরেক্টরিতে পরিবর্তন করবে । FWIW।
টিম কেনেডি

বেশিরভাগ মন্তব্য আমার পোস্টের দ্বিতীয় অংশে প্রতিফলিত হয়েছিল।
তামারা উইজসম্যান

22

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

cdকমান্ড প্রতীক একটি বিশেষ অর্থ নির্ধারণ -। অন্য যে কোনও কিছুতে স্যুইচ করার ডিরেক্টরি। cd -- -aডাকা ডিরেক্টরিটিতে স্যুইচ করে -a, কারণ -aঅপারেন্ড হিসাবে বিশেষ নয় এবং এটি বিকল্প হিসাবে বিবেচনা করা থেকে --বাধা দেয় cd। এটি -একার পক্ষে কাজ করে না যা কোনও বিকল্প নয়।

চারপাশে উদ্ধৃতি -দেওয়া সাহায্য করবে না, যেহেতু শেষ পর্যন্ত এটি অপারেন্ডটি পাস করবে -

আপনার একমাত্র অবলম্বন হ'ল একই ধারণাটি প্রকাশের অন্য উপায়, একই ডিরেক্টরিটির অন্য নাম for ভাগ্যক্রমে, একটি সহজ এটি রয়েছে: আপনি যদি ./কোনও আপেক্ষিক ফাইল নামের আগে যোগ করেন তবে এর অর্থ একই ফাইল। ./: একটি পার্থক্য যা আমাদের ক্ষেত্রে অপ্রাসঙ্গিক না করা CDPATHআলোচনা করা হয় না যখন ডিরেক্টরির নাম দিয়ে শুরু হয় /, ./বা ../। এভাবে:

cd ./-

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

cd -- -/

লিখিতকরণটি -/সমাপ্তি কোড দ্বারা প্রস্তাবিত হয়, যাইহোক, তবে ব্যাশে এটি আসলে এর --আগে কেবল এটির সাথে কাজ করে, cd -/ব্যাশের কোনও বিশেষ ক্ষেত্রে (zsh না) থাকে না।


এটি আমার মনকে উড়িয়ে দেয়, আমি আসলে চেষ্টা করেছি cd -- -/, তবে ডানটির সমতুল্য চালানোর কারণে cd -ডিরেক্টরিটি আসলে উপস্থিত ছিল না এবং আমি এটিকে অন্য একটি ব্যর্থ প্রচেষ্টা হিসাবে ব্যাখ্যা করেছি inter
ডের হচস্টাপলার

5

পথের সাথে যোগ্যতা অর্জন করা একটি বিকল্প।

cd ./-

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