কোনও ফাইলের জন্য chmod সংখ্যাসূচক মান পান


100

ফ্রিবিএসডি এবং লিনাক্সেও আমি কীভাবে chmodকোনও ফাইলের সংখ্যাসূচক মান পেতে পারি ? উদাহরণস্বরূপ, 644পরিবর্তে -rw-r--r--? বাশ স্ক্রিপ্টের জন্য আমার একটি স্বয়ংক্রিয় উপায় দরকার।

উত্তর:


159

আপনি স্ট্যাট আউটপুট ফর্ম্যাট ব্যবহার করে সরাসরি মূল্য পেতে পারেন, যেমন BSD / OS X:

stat -f "%OLp" <file>

বা লিনাক্সে

stat --format '%a' <file>

এবং ব্যস্তবক্সে

 stat -c '%a' <file>

ধন্যবাদ, উত্তর হিসাবে নির্বাচিত কারণ এটি প্রথমটি ছিল এবং এটি সর্বাধিক সহজ বলে মনে হয় :-) @seg_fault: স্ট্যাটাস -x আপনার আপনার_ফাইল আমাকে মোডের মানের চেয়ে বেশি দেয়।
stefan.at.wpf

5
মধ্যে busyboxব্যবহারেরstat -c '%a' <file>
স্টুয়ার্ট Cardall

1
একক উদ্ধৃতি প্রয়োজন হয় না, এবং --formatসংক্ষিপ্ত করা যেতে পারে -c। এটি কাজ করে:stat -c %a <file>
জন কেন

উবুন্টুতে আমার ব্যস্তবক্সের উত্তর দরকার ছিল, অন্যথায় 'স্ট্যাটাস:'% ওএলপি'-র জন্য ফাইল সিস্টেমের তথ্য পড়তে পারে না: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই '
তোফুটিম

7

stat YOUR_FILEগণনা করা স্ক্রিপ্ট না লিখে ব্যবহার করুন :

rwx rwx rwx ==> ( r = 4 ) if set + ( w = 2) if set + (x = 1) if set , for example:
You have :
-rw-wxrw- => (4+2+0)(0+2+1)(4+2+) = 0636 
First argument before 9 permissions is one of :
- = regular file
d =  directory
b = block device
c = character device
s = socket
p = pipe
f = fifo

উপায় দ্বারা, আমি ব্যবহার stat commandউপর Linux boxনা freebsd, কারণ এটি তদন্ত HFSসম্ভবত এর সাথে কাজ UFS


হ্যাঁ, আমি এটা অধীনে পাওয়া FreeBSD box, ব্যবহার stat -x YOUR_FILEঅধীনেFreeBSD box
PersianGulf

stat -r YOUR_FILE |awk '{print $3}' আপনার অনুমতি দেয়
ফার্সিগাল্ফ

বন্ধুত্ব দেখানোর কমান্ড? কেবল একটি সংখ্যা 666 বা কোড -rw-wxrw- নয় প্রতিটি পাঠের অনুমতি সম্পর্কে ব্যাখ্যা সহ একটি পাঠ্য।
পিটার ক্রাউস

@ পিটারক্রস, awkসংখ্যাসূচক ফলাফল পুনরুদ্ধার করতে একটি লিখতে ভাল ।
ফার্সিগাল্ফ

ধন্যবাদ @ পার্সিয়ানগাল্ফ। হুম ... কোনও প্লাগ-অ্যান্ড-প্লে স্ট্যান্ডার্ড উপায় নেই ....
পিটার ক্রাউস


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