লিনাক্সে পাথ directory // `প্রতিনিধিত্ব করে?


13

আমি যখন টাইপ করে লিনাক্সের উপরের স্তরের ডিরেক্টরিতে ফিরে যেতে চাই cd .., আমি টাইপ-এড করি cd //। আমার বিস্ময়ের জন্য, কোনও ত্রুটির খবর পাওয়া যায়নি। আরও কি প্রম্পট হয়ে ওঠে username@hostname://$lsইঙ্গিত দেয় যে আমি এখন মূল ডিরেক্টরিতে আছি।

এটি কি কোনও বাগ বা শেলের বৈশিষ্ট্য? যদি কোন বৈশিষ্ট্য, //একটি উপনাম হয় /? আমার শেলটি জিএনইউ বাশ, সংস্করণ 4.1.5 (1) -রেলিজ (আই 686-লিনাক্স-জিএনএনু)।

ধন্যবাদ এবং আন্তরিক শ্রদ্ধা.


উত্তর:


30

এটি হয় বিবেচনা করা যেতে পারে।

লিনাক্সে, এর //অর্থ কিছুই নেই - একাধিক একটানা টানা স্ল্যাশগুলি শুরুতে সহ যে কোনও জায়গায় , যে কোনও জায়গায় ধসে পড়ে । ডিরেক্টরি চালানো //আপনাকে in /ুকিয়ে readlink /proc/self/cwdদেবে , যেমনটি দৌড়াতে হবে; একইভাবে, /usr//local///binভেঙে পড়েছে /usr/local/bin

তবে ইউনিক্সের মতো আরও কিছু সিস্টেম, উদাহরণস্বরূপ সাইগউইন বা পুরাতন অ্যাপোলো ডোমেন / ওএস, যেমন নেটওয়ার্ক পাথগুলির জন্য // উপসর্গ ব্যবহার করে //fileserver/path/to/data। পসিক্স এটিও অনুমতি দেয়।

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


আকর্ষণীয়ভাবে, zshঅনুমতি দেয় cd //তবে কেবল /প্রম্পট স্ট্রিংয়ে দেখাতে যথেষ্ট স্মার্ট ।
new123456

@ বাইনারিজেব্রা বিটসভার্সে অ্যাপোলো সহ পুরানো ইউনিক্স ম্যানুয়ালগুলির সংকলন রয়েছে - সেখানে প্রচুর উদাহরণ থাকতে হবে। টিইউএইচএস ওয়েবসাইটে পাশাপাশি কিছু হওয়া উচিত।
user1686

অনেক ধন্যবাদ, আমি বিটসভার ম্যানুয়ালটিতে // এর বর্ণনা পেয়েছি।

9

POSIX পথের সংজ্ঞা থেকে:

একটি পাথনামে oneচ্ছিকভাবে এক বা একাধিক ট্রেলিং স্ল্যাশ থাকতে পারে। একাধিক ধারাবাহিক স্ল্যাশ একই স্ল্যাশের সমান হিসাবে বিবেচিত হয়।

সূত্র

এবং আরও স্পষ্টরূপে গ্রন্থিটি নীচে তার মন্তব্যে উল্লিখিত, পাঠনাম রেজোলিউশনের 4.11 অধ্যায় থেকে :

দুটি ক্রমান্বয়ে স্ল্যাশ দিয়ে শুরু হওয়া একটি প্যাথনামটি বাস্তবায়ন-সংজ্ঞায়িত পদ্ধতিতে ব্যাখ্যা করা যেতে পারে, যদিও দুটিরও বেশি নেতৃস্থানীয় স্ল্যাশকে একক স্ল্যাশ হিসাবে বিবেচনা করা হবে।


1
আরও সঠিক বিভাগটি হ'ল পাথনাম রেজোলিউশন (শেষ অনুচ্ছেদ), কারণ প্রশ্নে আচরণটি কেবল দুটি শীর্ষস্থানীয় স্ল্যাশগুলির জন্য উপস্থিত ।
ব্যবহারকারীর 6868

3

এটি এক ধরণের বৈশিষ্ট্য। যদি আপনার কাছে শেল স্ক্রিপ্টটি চালু হয় এবং ব্যবহার হয় তবে findউদাহরণস্বরূপ সমস্ত পাথগুলি সাধারণত ./ এর সাথে উপসর্গ করা হয়। তারপরে, আপনি যদি এটিটিকে সত্যিকারের পথে নিয়ে যান তবে এটি my /my/path/./append/path হয়ে যায়, যা / আমার / পথ / সংযুক্ত / পাথের সমাধান করে। সুতরাং, যদি আমি ভুল না হয়ে যাই, // get এর / / / হিসাবে ব্যাখ্যা করা হয় এবং তাই /। আপনি যদি / home / user // এ যান তবে এটি একইরকম / আপনি / বাড়িতে / ব্যবহারকারী /


1

আমি "বাগ" প্রম্পট প্রদর্শন করার জন্য যেতে চাই।

পাথ "/", "//", "////////////////////////", ... এর একই অর্থ রয়েছে: "/"। আপনি ইউনিক্স পথে যেখানেই চান সেখানে যতগুলি "/" যুক্ত করতে পারেন এটির অর্থ পরিবর্তন হয় না।

"বাগ" এখানে আরও সম্পর্কিত যে আপনার প্রম্পট প্রকৃত "পিডাব্লুডি" নয়, প্রদর্শনের জন্য পথে সর্বশেষ বৈধ টাইপ ব্যবহার করে to

মজাদার যাইহোক;)


সম্মত - //প্রম্পটে থাকা আপনার প্রম্পট পরিবেশের পরিবর্তনশীল ( $PS1) এর পার্শ্ব প্রতিক্রিয়া - কীভাবে PS1সংজ্ঞায়িত হয়?
ডগ হ্যারিস

@ ডাওগরিস $PS1পরিবর্তনশীল হিসাবে সংজ্ঞায়িত করা হয়েছে [\u@\h \W]\$। সেটিং নিয়ে কোন সমস্যা?
গ্রীষ্ম_মুড়_আর_আর

অস্বাভাবিক. আমি যদি PS1 চেষ্টা করি তবে আমি কেবলমাত্র /পিডাব্লুড = পেয়ে যাব /। আমি ভাবলাম আপনি ডিরেক্টরি পাওয়ার জন্য কোনও অতিরিক্ত কাজ করছেন কিনা। হয় $PROMPT_COMMANDসেট?
ডগ হ্যারিস

@ ডাওগরিস হ্যাঁ, এই পরিবর্তনশীলটি সেট করা হয়েছে, যার মান echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#HOME/~}"; echo -ne "\007"। আপনি কি একটু বিস্তারিতভাবে ব্যাখ্যা করতে পারেন? আমি এই দুটি ভেরিয়েবলের সাথে বেশ পরিচিত নই। ধন্যবাদ।
সামার_মুরি_আর_আর

বাশ ম্যান পৃষ্ঠাটি পড়ুন এবং অনুসন্ধান করুন PS1এবং PROMPT_COMMAND- man bashআপনার কমান্ড লাইনে ব্যবহার করুন বা অনলাইনে পড়ুন
ডগ হ্যারিস

1

এটির বৈশিষ্ট্য এবং সমস্ত একাধিক // একটি একক / প্রতিস্থাপন করা হবে

যদি আপনার শেষে উদাহরণের মতো পাথের সাথে ভেরিয়েবল থাকে তবে এটি কার্যকর। সুতরাং আপনার সিডি কোনও ত্রুটি পেতে না পারে এবং আপনাকে কর্মক্ষেত্রের ভেরিয়েবল পরিবর্তন করতে হবে না।

MY_WORKSPACE = / হোম / your_username / কর্মক্ষেত্র /
MY_NEW_PROJECT = $ MY_WORKSPACE / my_proj /
সিডি $ এমওয়াই_নউ_প্রোজেট 

প্রকল্পের ভেরিয়েবলের সম্পূর্ণ সামগ্রী

/ হোম / your_username / কর্মক্ষেত্র // my_proj /

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