পিডব্লুডিতে যখনই আমার কাছে ইতিমধ্যে "~ কার্নেল-পিপিএ" নামে একটি ফোল্ডার রয়েছে তখন সিডি ~ কে (& ট্যাব) সিডি-কার্নুপে কেন বিস্তৃত হয়?


8

আমার ~kernel-ppaভিতরে একটি ফোল্ডার রয়েছে ~/Downloads

aditya@aditya-desktop:~$ cd Downloads/
aditya@aditya-desktop:~/Downloads$ ls
~kernel-ppa

এখন যখন আমি টাইপ করব cd ~kএবং Tabস্বয়ংক্রিয় প্রসারণের জন্য টিপব তখন শেলটি এর cd ~kernoops/পরিবর্তে প্রসারিত হবে cd ~kernel-ppa/যদিও একই প্রারম্ভিক অক্ষরের ফোল্ডারটি ইতিমধ্যে উপস্থিত রয়েছে।

স্বয়ংক্রিয়ভাবে কাজ করার প্রসারণের জন্য, আমার এটিকে এড়াতে হবে \। সুতরাং সঠিকভাবে ব্যবহার cd \~kএবং টিপে Tabএটি প্রসারিত করে cd \~kernel-ppa/। এমনকি ব্যবহার cd \এবং টিপস Tabকৌশলটি করে।

কেন এমন হয় এবং আমার পালানোর দরকার কেন? তদুপরি, এমনকি যেহেতু আমি ~স্বয়ংক্রিয়ভাবে প্রসারণের প্রয়োজন নেই তার থেকে আমি কীভাবে পালাচ্ছি ?

যদি আমি প্রবাহ এবং রান দিয়ে যান cd ~kernoops/এবং প্রেস Enter, টার্মিনাল অবস্থা পরিবর্তন //:

aditya@aditya-desktop:~/Downloads$ cd ~kernoops/
aditya@aditya-desktop://$ pwd
//
aditya@aditya-desktop://$ ls
bin   cdrom  etc   initrd.img  lost+found  mnt  proc  run   srv  tmp  var
boot  dev    home  lib         media       opt  root  sbin  sys  usr  vmlinuz
aditya@aditya-desktop://$ 

এটি /ডিরেক্টরিটির মতো দেখায় তবে pwdএটি বলে //এটা ঠিক কি?


@ রদুরাদেয়ানু না, এটি "/ হোম / আদিত্য / ডাউনলোডস / ~ কার্নেল-পিপিএ"
এলিয়ট ফ্রিচ

প্রথমে, "সিডি ~ কার্নোপস /" আপনাকে "সিডি / হোম / কার্নোপস /" এ নিয়ে যাচ্ছে যা বিদ্যমান নেই। পরিবর্তে, আপনি "সিডি //" পান যা "সিডি /" লেখার অন্য একটি উপায় - এটি মূল ফাইল সিস্টেমের মূল ডিরেক্টরি, যা দেখতে অদ্ভুত দেখাচ্ছে।
এলিয়ট ফ্রিশ্চ

কেন একক পালাতে "\\" কাজ করে, আপনার ফোল্ডারটি সাথে treeবা তার সাথে একবার দেখুন lsএবং আপনি লক্ষ্য করবেন যে এটি প্রথম সাব-ফোল্ডার হিসাবে ঘটে।
এলিয়ট ফ্রিশ্চ

@ এলিয়টফ্রিশচ: আমি কেবল লক্ষ্য করেছি যেহেতু ~kernel-ppaএটির একমাত্র ফোল্ডার; আমি যদি এখনই চালনা করি cd এবং ট্যাব টিপুন, এটি প্রসারিত হয় cd \~kernel-ppa/। আমারও পালানোর দরকার নেই!
আদিত্য 13

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

উত্তর:


10

আপনি যেমন জানেন, ~আপনার বাড়ির ডিরেক্টরিতে প্রসারিত হয়। তবে আপনি যেটি মিস করেছেন বলে মনে হয় তা হ'ল ~john"জন" নামের ব্যবহারকারীর হোম ডিরেক্টরিতে প্রসারিত।

আপনার /etc/passwdফাইল পরীক্ষা করুন:

% grep ker /etc/passwd
kernoops:x:107:65534:Kernel Oops Tracking Daemon,,,:/:/bin/false

এটির একটি "সিস্টেম ব্যবহারকারী" রয়েছে kernoops(অভ্যন্তরীণ বাগ রিপোর্টের কারণে)। সুতরাং আপনি যখন cd ~kTabশেলটি টাইপ করেন তখন স্থানীয় ডিরেক্টরিগুলির প্রসারণের আগে ব্যবহারকারীর নাম প্রসারণকে (1) অগ্রাধিকার দেয় এবং আপনার কাছে থাকে cd ~kernoops। এখন এটি ফলাফল করেছে যে ব্যবহারকারী "কর্নুপস" বাড়ির দির /, সুতরাং এটি cdএটির পক্ষে।

আমার শেলটিতে, আমার zshকোনও ডাবল স্ল্যাশ নেই (2):

[:/] % cd ~kernoops/ 
[:/] % pwd
/
[:/] % cd //
[:/] % pwd
/

অন্যদিকে, এই ডিরেক্টরিটির নামটি ভালভাবে ভাবা যায় না। স্ক্রিপ্টগুলিতে এবং যাই হোক না কেন এটির ট্রিপল কেয়ারের প্রয়োজন হবে। আমি মনে করতে পারি সবচেয়ে খারাপ ধারণা এটিতে একটি ট্যাব এম্বেড করা ...


পাদটিকা:

(1) ইন zsh, এমনকি যদি আমার নামের একটি ডিরেক্টরি থাকে ~xdirএবং কোনও ব্যবহারকারী দিয়ে শুরু হয় না x; করছেন cd ~xTabপ্রসারিত করে না এবং মূল্য উদ্ধৃতি না ~ত্রুটি দেয়:

[:~/tmp/x] %  mkdir \~xdir
[:~/tmp/x] % ls
~xdir
[:~/tmp/x] % cd ~xdir  
zsh: no such user or named directory: xdir
[:~/tmp/x] 1 % 

(২) আমি মনে করি মনে হয় যে পোস্টিক্স প্রাথমিক //পথে কোনও পথে ব্যতিক্রম করেছে --- এটি বজায় রাখা উচিত কারণ কিছু পুরানো ইউনিক্স বৈকল্প (আমি যে ডোমেন / ওএস সহ অ্যাপোলোসটি ব্যবহার করেছি ) //machine-name/...অন্যান্য যন্ত্রগুলিকে অবিচ্ছিন্নভাবে অ্যাক্সেস করতে ব্যবহার করতাম ' স্থানীয় নেটওয়ার্কে ফাইল সিস্টেম (সুরক্ষা এখনও উদ্ভাবিত হয়নি)। সুতরাং সম্ভবত বাশ এখানে ঠিক আছে। আপনি যদি করেন তবে আপনার উভয় শেলের মধ্যে cd ///স্বাভাবিক থাকবে /

হ্যাঁ, ইউনিক্স.সে পাওয়া গেছে !


1
আর একটি সুপরিচিত লিগ্যাসি ওএস এর মতো ডাবল-স্ল্যাশ স্বরলিপি ব্যবহার করে তবে এর স্ল্যাশগুলি সাধারণত পিছনের দিকে লেখা থাকে এবং এটি ঠিক যে নেটওয়ার্ক-রিমোট ফাইল ফাইলগুলি অ্যাক্সেসের জন্য ফরওয়ার্ড স্ল্যাশ গ্রহণ করে কিনা তা আমি নিশ্চিত নই। ;-)
আর .. গীটহাব বন্ধ করুন ICE

7

টিলেড অক্ষর ( ~) শেলের একটি বিশেষ অর্থ রয়েছে। এটি কোনও কমান্ডে দেখা গেলে এটি আপনার বাড়ির ডিরেক্টরিতে প্রসারিত হয়। করছেন cd ~বা cd /home/adityaএকই, এটি আপনার হোম ডিরেক্টরিতে শেষ হয়।

টিলডের \সামনে একটি ব্যাকস্ল্যাশ অক্ষর ( ) রেখে , আপনি শেলটিকে নিম্নলিখিত বিশেষ চরিত্রের সম্প্রসারণ না করার জন্য বলে থাকেন (এটাকেই শেল এস্কেপ বলা হয়)। এমনটি করে cd \~আপনি একটি ডিরেক্টরির নামে সরাতে শেল জিজ্ঞাসা ~ডিরেক্টরিটি আপনি কমান্ড করছেন অধীনে অবস্থিত করা হবে। এমনটি cd \~kernel-ppaডিরেক্টরির নামে আপনি পরিবর্তন করতে হবে ~kernel-ppa, যা স্বাভাবিক আচরণ।

সম্পাদিত: আরও ~ এ ~

এর পরে যদি আপনি আপনার সিস্টেমের একটি ব্যবহারকারীর নাম লিখেন তবে আপনাকে ~সেই ব্যবহারকারীর হোম ডিরেক্টরিতে স্থানান্তরিত করা হবে। একটি এরকম Tabপর সম্প্রসারণ cd ~আপনার সিস্টেমে বিদ্যমান ব্যবহারকারীর প্রসারিত হবে। Tabপরে যদি সম্পন্ন হয় cd ~k, এটি ~ কার্নোপগুলিতে প্রসারিত হবে কারণ সিস্টেমের ব্যবহারকারীদের মধ্যে একটি হোম ডিরেক্টরি সহ ডিরেক্টরিতে কার্নুপ নামক ব্যবহারকারী রয়েছে /। একটি পেছনের স্ল্যাশ এবং হোম ডিরেক্টরি মৌমাছি সহ cd ~kফলাফলের প্রসারণ হিসাবে , আপনি এতে স্থানান্তরিত হন । তবে এটি কঠোরভাবে একই রকম যে কেউ কেউ এর আগে বলেছিলেন।cd ~kernoops/////


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