ফাইন্ড কমান্ড কেন / রান / এ ফুটে উঠেছে?


13

আমি এই উত্তর দ্বারা প্রদত্ত পাইথন সংস্করণগুলি পরীক্ষা করতে নিম্নলিখিত কমান্ডটি ব্যবহার করেছি । এটি নীচে দেখানো একটি ত্রুটি ব্যতীত কাজ করে। কেন কেউ ব্যাখ্যা করতে পারেন?

$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; \
    | awk -F: '/x-executable; charset=binary/ {print $1}' \
    | xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'

ত্রুটি:

find: ‘/run/user/1000/gvfs’: Permission denied

2
python --versionএবং python3 --versionসক্রিয় সংস্করণ দেখাতে। আমাদের সবার একটি 2.x সংস্করণ এবং একটি 3.x সংস্করণ;)
রিনজউইন্ড

6
এবং ত্রুটিটি স্বাভাবিক এবং কমান্ডের সাথে সমস্যা নয়। /run/"সন্ধান" এর মধ্যে অন্তর্ভুক্ত করা উচিত নয়। gvfsআপনার ব্যবহারকারীর মালিকানাধীন নয়।
রিনজউইন্ড

1
এছাড়াও আপনি টাইপ করতে পারেন pythonকনসোলে এবং ট্যাব কী দুইবার টিপুন, এটা দিয়ে শুরু আপনার পাথ প্রতিটি এক্সিকিউটেবল দেখাব python
টিমো

7
ভাল দুঃখ, মানুষ। আমি প্রশ্নটিতে মোটামুটি বিশাল সম্পাদনা করছি কারণ কিছু লোক প্রথম অনুচ্ছেদে এটি পরিচালনা করতে পারেনি। ওপি জানে যে কী সংস্করণগুলি সন্ধান করতে হবে, প্রশ্নটি এই আদেশটি (যা পাইথনের সমস্ত সংস্করণ সন্ধান করে ) কেন একটি নির্দিষ্ট ত্রুটি খুঁজে বের করছে about আপনি যদি python -Vবিকল্পগুলি এবং বিকল্পগুলি পোস্ট করতে চান তবে দয়া করে এটিকে তথ্যের জন্য অনুরোধ করে কোনও প্রশ্নে নিয়ে যান
অলি

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

উত্তর:


20

অনুমতিগুলি:

$ stat -c %a /run/user/1000/gvfs
500

সুতরাং কেবলমাত্র মালিকের অনুমতি কার্যকর করা হয়েছে (যা ডিরেক্টরিগুলি অনুসন্ধান করার অনুমতি দেয়)। তবে, আপনি ব্যবহার sudoকরেছেন এবং মূলের সমস্ত সম্ভাব্য অনুমতি আছে, তাই না? আসলে আপনি ব্যতিক্রমটি খুঁজে পেয়েছেন:

এই উত্তরটি দ্বারা গিলেজ ইউনিক্স এবং Linux দঃপূঃ উপর ব্যাখ্যা দিয়েছে কেন অনুমতি রুট ডিরেক্টরিটি, যা ফিউজ জন্য mountpoint জন্য অস্বীকৃত:

FUSE ফাইল সিস্টেমের সাথে আস্থার সীমানা পরিচালনা করা কঠিন, কারণ ysteতিহ্যবাহী ফাইল সিস্টেমগুলির জন্য কার্নেল কোডের বিপরীতে ফাইল সিস্টেম ড্রাইভার একটি অনিবদ্ধ ব্যবহারকারী হিসাবে চলমান। জটিলতা এড়াতে, ডিফল্টরূপে, FUSE ফাইল সিস্টেমগুলি কেবল ড্রাইভার প্রক্রিয়া চালিত ব্যবহারকারীর কাছেই অ্যাক্সেসযোগ্য। এমনকি রুট এই নিষেধাজ্ঞাকে বাইপাস করতে পারে না।

আপনি যদি findকমান্ডটি চালনা করেন sudo(আপনার নিজস্ব ব্যবহারকারী হিসাবে, ইউআইডি 1000) আপনি সেই ত্রুটিটি পাবেন না, কারণ আপনি নিজের মালিকানাধীন ডিরেক্টরিটির মালিক হন তবে পরিবর্তে অন্যান্য অনুমতি ত্রুটি পাবেন, সুতরাং, sudoগিলসের পরামর্শটি ব্যবহার করুন এবং নিন:

আপনি যদি কেবল স্থানীয় ফাইল সিস্টেমে কোনও ফাইল অনুসন্ধান করছেন তবে সন্ধানের জন্য -xdev পাস করুন।


অজগর সংস্করণগুলি চেক করার সহজ উপায়:

$ python --version
Python 2.7.12+
$ python3 --version
Python 3.5.2+

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

1
এটি আপনি, ইউআইডি 1000. আপনি cdসেই ডিরেক্টরিতে আপনার সাধারণ ব্যবহারকারী হিসাবে পারেন তবে মূল হিসাবে নয়। আপনি যদি চালনা findনা করে sudoআপনি ত্রুটিটি দেখতে পাবেন না (তবে আপনি অবশ্যই অন্যান্য অনুমতি ত্রুটি পাবেন)
Zanna

2
@ আবদুলকায়ুম আপনি কি নিশ্চিত? ডিফল্টরূপে উবুন্টুর বেশ কয়েকটি ব্যবহারকারী বিভিন্ন ডিমন প্রসেসের সাথে যুক্ত। সুতরাং হ্যাঁ, তারা লগইন করতে পারে না এবং তাদের কোনও হোম ডিরেক্টরি নেই তবে তাদের উপস্থিতি রয়েছে এবং তারা ফাইল এবং ডিরেক্টরিগুলির মালিক হতে পারে ...
বাকুরিউ

7

আপনার কাছে অজগরটির কী সংস্করণ রয়েছে তা খুঁজে বের করার বিভিন্ন উপায় রয়েছে। পাইথন 2 এবং পাইথন 3 সংস্করণ দুটি পেতে এখানে দুটি উপায় রয়েছে:

পাইথন স্পেসিফিক

প্রথমে কেবল চালান pythonএবং python3বিকল্পটি দিয়ে--version

$ python --version
Python 2.7.12
$ python3 --version
Python 3.5.2

এটি অজগরটির জন্য নির্দিষ্ট, তবে অন্যান্য প্রচুর প্রোগ্রাম একই ধরণের পদ্ধতি ব্যবহার করে।

যে কোনও প্যাকেজ / প্রোগ্রামের জন্য সাধারণ

আরও সাধারণ পদ্ধতি হ'ল কোন প্যাকেজটি ইনস্টল করা আছে তা। dpkg -lআপনার সমস্ত প্যাকেজ তালিকাভুক্ত করবে, তবে আপনি কী প্যাকেজগুলির সন্ধান করছেন তা নির্দিষ্ট করতে পারেন। শুধু পাইথন এবং পাইথন 3 এর জন্য নিম্নলিখিতটি ব্যবহার করুন:

$ dpkg -l 'python'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-================================================
ii  python                2.7.11-1        amd64           interactive high-level object-oriented language 
$ dpkg -l 'python3'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                  Version         Architecture    Description
+++-=====================-===============-===============-================================================
ii  python3               3.5.1-3         amd64           interactive high-level object-oriented language 

অতিরিক্ত শিরোনাম হিসাবে। আপনি যদি এমন সমস্ত প্যাকেজ খুঁজে পেতে চান যার নামের সাথে শুরু হয় python, আপনি ওয়াইল্ডকার্ড অক্ষরটি ব্যবহার করতে পারেন *:

$ dpkg -l 'python*'

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


উত্তম উত্তর তবে উপরের স্ক্রিপ্টটি কাজ করে। আমি কেবল অনুমতি অস্বীকার সম্পর্কে উদ্বিগ্ন ছিলাম
আবদুল কাইয়ুম

আমাদের মধ্যে বেশিরভাগই স্টেমারকে একটি অস্থায়ী ফাইলে পুনর্নির্দেশ করে। স্ক্যান ধরণের প্রচুর ক্রিয়াকলাপ ঘটে।
mckenzm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.