সুডোর সাথে বাশ পাথের সমাপ্তি কীভাবে কাজ করে?


11

ট্যাব পাথের সমাপ্তি কাজ করে না (অন্তত উবুন্টু এবং এএফআইকি আর্চে) এর সাথে

sudo mount <whatever>

আমি যে আইসো ফাইলটি মাউন্ট করার চেষ্টা করছি সেটিতে নেই /etc/fstab। আমি যদি শুধু টাইপ করি

mount <whatever>

সমাপ্তি কাজ করে (তবে অবশ্যই আমি মূল না হওয়ায় আদেশটি ব্যর্থ হয়)। স্পষ্টতই এটি sudoভেঙে যায়।

কীভাবে সুডো দিয়ে কাজ শেষ করতে পারে?

এটা যে অবাক হয়

sudo umount <whatever>

সমাপ্তির কাজ এটি কীভাবে অর্জিত হয়? এটা কি খোঁজ করে /etc/fstab?

সমাধান: আমি শুধু একটা শেল স্ক্রিপ্ট করা /usr/local/binযে কল sudo mount ...আর্গুমেন্ট এটি পাস হয়। কোনওভাবেই নেই বলে এই স্ক্রিপ্টটি কল করার সময় সমাপ্তি কাজ করে sudo

উত্তর:


11

এটির সাথে মোটেই তেমন সম্পর্ক নেই bash, তবে এটি প্যাকেজে প্রোগ্রাম করা সম্পূর্ণতার উপর নির্ভর করে bash-completion

ফাইলটিতে কিছু মন্তব্য থেকে /etc/bash_completion.d/mount:

# mount(8) completion. This will pull a list of possible mounts out of
# /etc/{,v}fstab, unless the word being completed contains a ':', which
# would indicate the specification of an NFS server. In that case, we
# query the server for a list of all available exports and complete on
# that instead.
#

# umount(8) completion. This relies on the mount point being the third
# space-delimited field in the output of mount(8)
#

এছাড়াও, আপনি মূল ফাইলটিতে /etc/bash_completionনিম্নলিখিত মন্তব্যটি পেয়েছেন, যা স্পষ্টভাবে আলোচনা mountএবং umountআদেশ দেয়:

# A meta-command completion function for commands like sudo(8), which need to
# first complete on a command, then complete according to that command's own
# completion definition - currently not quite foolproof (e.g. mount and umount
# don't work properly), but still quite useful.
#

আপডেট :
সম্পর্কে মন্তব্য mountএবং umountকমান্ড সরানো হয়েছে থেকে bash_completionকমিট :

_command_offset: Restore compopts used by called command.

This fixes completions that rely on their compopts, most notably
mount(8).
Fixes bash-completion bug #313183.

মুক্তিপ্রাপ্ত মধ্যেbash-completion 1.90


4

আর্ক উইকিতে অনুসন্ধান করে এটি সহজে সমাধান করা যেতে পারে :

আপনি কিছু কমান্ড পছন্দ করার পরে স্বয়ংক্রিয়-সম্পূর্ণ বৈশিষ্ট্য (কীবোর্ডে ট্যাব কী টিপুন টিপুন) টি কার্যকর sudo

এটি করতে, আপনার ~/.bashrcফাইলে এই ফর্ম্যাটটিতে লাইন (গুলি) যুক্ত করুন:

সম্পূর্ণ -cf your_command

উদাহরণস্বরূপ, পরে sudoএবং অটো-সম্পূর্ণ সক্ষম করতে man:

complete -cf sudo
complete -cf man

ধন্যবাদ। দয়া করে মনে রাখবেন যে অটো-সম্পূর্ণটি ক্ষেত্রে আশ্চর্যজনকভাবে ভাল কাজ করে sudo umount। এনজোটিব যেমন উল্লেখ করেছেন, এই বৈশিষ্ট্যটি ভেঙে গেছে mountএবং শেষবার যাচাই করেছিলাম, এটি আর্কেও ভেঙে গেছে।
আলী

আমি এটি কেবল আর্চটিতে চেষ্টা করেছি এবং sudo মাউন্ট / আমার <TAB> আমি যে কনফিগার করেছি /etc/fstab/ মেডিয়ার সাথে শুরু হয় তার একমাত্র পাথ সম্পূর্ণ ।
উইল্যান্ড

আমার ক্ষেত্রে, ফাইল আমি মাউন্ট করার চেষ্টা করছি হয় না/etc/fstab। আপনি কি এটি পরীক্ষা করতে পারেন?
আলী

0

না এটি fstab এ দেখায় না। বাশ সমাপ্তি পাথ, বাশার্ক এবং / অথবা বাশ_প্রফাইলে এবং পাথের উপকরণগুলি অনুসন্ধান করে। সুতরাং আপনি যদি কিছু টাইপ করেন তবে sudo mount /mnt/some_folderএটি স্বয়ংক্রিয়ভাবে সম্পূর্ণ হওয়া উচিত। হতে পারে আপনি যখন umountনিজের গন্তব্যের জন্য কোনও আপেক্ষিক পথে ছিলেন এবং এটি একটি স্বয়ংক্রিয়-সম্পন্ন করেছিল।


ধন্যবাদ। আমি নিশ্চিত যে sudo mount /mnt/some_folder100% নিশ্চিত অটো-সম্পূর্ণ কাজ করে না । এএআইএআইএকি এটি আরক লিনাক্সেও কাজ করে না। আমি যখন করেছি তখন আমি umountগন্তব্যের জন্য আপেক্ষিক পথে ছিলাম না।
আলী

-1

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

তবে আমাউন্টে কল করার সময়, ডিভাইস / মাউন্ট / ইত্যাদির আউটপুটটি সহজেই জানতে পারে কোন ডিভাইসগুলি মাউন্ট করা হয়েছে এবং কোথায়।

হয়তো zsh মাউন্টের জন্য সমাপ্তির জোগান দেবে, স্কেপ কমান্ড করার সময় হেক zsh এমনকি স্ব-সম্পূর্ণ ...


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

এমনকি পরম পথ ব্যবহার করছেন? / হোম / ইউজার / মাইসো <ট্যাব> -> মাইসোফিল.আইসো। sudo প্রতিধ্বনিত সঙ্গে ডিবাগ $ শেল; sudo pwd, আশা করি এটি আপনাকে কিছু অন্তর্দৃষ্টি দেবে।
আকি

হ্যাঁ, পরম পাথ সহ। আপনার প্রস্তাবিত ডিবাগিংটি আমি চেষ্টা করব। আপনার প্রস্তাবিত ডিবাগিং /bin/bash /home/aliপ্রত্যাশা অনুযায়ী দেয় ।
আলী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.