আমি কীভাবে কেবল ডিরেক্টরিগুলিতে পুনরাবৃত্ত chmod করতে পারি?


31

আমি ডিরেক্টরি থেকে পুনরাবৃত্তভাবে সমস্ত ডিরেক্টরিতে এক্সিকিউট করার অনুমতিগুলি যুক্ত করতে সেন্টোস 4 এ গাছের অনুমতিগুলি পরিবর্তন করতে চাই। যদি আমি সাধারণ chmod ব্যবহার করি, ডিরেক্টরি ছাড়া অন্য ফাইলগুলিও পরিবর্তন করা হয়:

chmod -R o+x /my/path/here

আমি কীভাবে কেবল ডিরেক্টরিগুলি প্রভাবিত করতে পারি?

উত্তর:


48

চালান findউপর -type d( ডিরেক্টরি সঙ্গে) -execপ্রাথমিক সম্পাদন করতে chmodফোল্ডার শুধুমাত্র:

find /your/path/here -type d -exec chmod o+x {} \;

এটি কেবল কাঙ্ক্ষিত বস্তুগুলিতে এটি সম্পাদন করে তা নিশ্চিত হওয়ার জন্য, আপনি ঠিক find /your/path/here -type dআগে চালাতে পারেন ; এটি কেবল যে ডিরেক্টরিগুলি খুঁজে পায় তা মুদ্রণ করবে।


আপনি কি ব্যাখ্যা করতে পারেন {} \; করে?
Srekel


17

দেখুন কমান্ড লাইন উদাহরণ - chmod উইকিপিডিয়া।

chmod -R a-x+X directory    remove the execute permission on all files in 
                            a directory tree, while allowing for directory browsing.

ড্যানিয়েল দ্বারা যুক্ত হিসাবে: এটি আপনার ক্ষেত্রে কাজ করা উচিত:

chmod -R o+X directory

এটি ডিরেক্টরিগুলির মধ্যে ফাইলগুলির বর্তমান অনুমতিগুলিকে প্রভাবিত করবে।
স্ক্রিপ্টমনস্টার

@ স্ক্রিপ্টমন্সটারের উদ্ধৃত লাইনটি এই ক্ষেত্রে ভুল, তবে ওপি'র পক্ষে chmod -R o+X directoryকাজ করা উচিত।
ড্যানিয়েল বেক

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

1
find /home/mydir -type d | xargs chmod ugo+rx

এটি CentOS6 এ কাজ করে যা উপরের সন্ধানটি-এক্সেক না করে। মূলত এটি xargs কমান্ডের ডিরেক্টরিগুলির তালিকা পাইপ করে যা তাদের chmod এ প্রেরণ করে। এর পরে chmod ডিরেক্টরিগুলিতে সর্বজনীন পঠন এবং সম্পাদন (অনুসন্ধান) নির্ধারণ করে। বাড়ির সমস্ত ব্যবহারকারীর জন্য এটি করতে sudo:

sudo sh -c "find /home/ -type d | xargs chmod ugo+rx"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.