আমি কীভাবে ফাইলগুলির একটি নির্দিষ্ট তালিকা chmod / chown করতে পারি?


31

আমি কিছু ফোল্ডারের অনুমতি সেটআপ করতে একটি .sh স্ক্রিপ্ট লিখতে চাই, কিন্তু আমি যদি এরকম কিছু চালাতে পারি তবে অবাক হয়েছিল:

chown -644 ./one;/two;/three

একাধিকবার কল ডাউন কল করার চেয়ে ফোল্ডারের একটি তালিকা ছুঁড়ে ফেলার জন্য।

এছাড়াও, ফাইলগুলির তালিকা ছাঁটাই করার উপায় আছে এবং কিছু অন্যকে বাদ দেওয়া যেমন উদাহরণস্বরূপ:

chown -R -664 ./*;!./cache

আমি আশা করি আমার সিউডো কমান্ড লাইনগুলি উপলব্ধি করবে।

উত্তর:


43

প্রায় সমস্ত ইউনিক্স সরঞ্জাম অপ-আর্গুমেন্ট হিসাবে ফাইলগুলির একটি তালিকা গ্রহণ করে। যথারীতি, বিভিন্ন যুক্তিগুলি স্থান দ্বারা পৃথক করতে হবে:

chown 644 one two three

আপনার দ্বিতীয় উদাহরণে, আপনি যদি ব্যাশ ব্যবহার করেন তবে সাধারণ

chown -R 644 !(cache)

যথেষ্ট হবে।

এই পদ্ধতির জন্য বর্ধিত প্যাটার্ন মেলানো দরকার। যদি এটি অক্ষম থাকে তবে আপনি এটি সক্ষম করতে পারেন

shopt -s extglob

দেখুন: বাশ রেফারেন্স ম্যানুয়াল # প্যাটার্ন ম্যাচিং


4

Mod-They.txt এ ফাইলের নামের একটি তালিকা তৈরি করুন এবং তারপরে চালান:

chmod g+w `cat mod-these.txt`

বা অন্যদের দ্বারা বর্ণিত পদ্ধতিটি এখানে ব্যবহার করুন:

chown 644 one two three

বা প্রথম বিকল্পের সাথে শহরে যান তবে ফাইলের প্রতিটি লাইনকে হেরফের করুন (উদাহরণস্বরূপ: "/" (পূর্ববর্তী সাদা অংশে) "./" দ্বারা প্রতিস্থাপন করুন):

chmod g+w `sed 's/ \// .\//' update-writable.txt` 

2

জয়ের জন্য রিজেক্স !

রেগেক্স ব্যবহারের বাইরের কথা ভাবার সবচেয়ে ভাল উপায় হ'ল অনুসন্ধানটি যা ইতিমধ্যে আপনার নির্দিষ্ট শেলটিতে বা আপনি নিজেই ব্যবহার করছেন এমন অ্যাপের মধ্যে থাকতে পারে। প্রথম, আমি চেষ্টা করেছি:

touch one&touch two &touch three&find -name "one|two|three" -exec chown -644 {} \;

তবে, আপনি দেখতে পাবেন যে পাইপটি এই ক্ষেত্রে কাজ করে না। শিখার মতো আরও দু: খজনক বিষয় ... যেমন chmod, chown, chgrp, ইত্যাদি শেখা। অল। মাল্টি-ফাইল / রেজেক্স নির্বাচন / বর্জন নিজেই সমর্থন করে না ...
আমি যে সমাধানটি পেয়েছি তা:
/programming/19111067/regex-match-either-string-in-linux-find-command

find \( -name one -o -name two -o -name three \) -exec chown -644 {} \;

সুতরাং, জয়ের জন্য এতটা রেইজেক্স না, তবে আমাদের অন্ততপক্ষে একটি লাইনারে একটি প্রোগ্রামের আর্কগুলিতে ফাইলগুলির একটি তালিকা ইনজেক্ট করার উপায় রয়েছে।

আপনি নোট করবেন যে আপনার () মেটা-অক্ষরগুলি এবং প্রতিটি অতিরিক্ত নামের জন্য -o প্যারামিটার যুক্ত করা দরকার ...

আমার কাছ থেকে আসা অন্যান্য লিঙ্ক এবং সামগ্রী যা আপনার ভ্রমণের পাশাপাশি আপনার আগ্রহী হতে পারে:
বিভিন্ন বারান্দা - কর্ন বোর্ন এবং বন্ধুদের নোটগুলি। - ডেভ হর্নারের ওয়েবসাইট

চিয়ার্স।
--dave


KISS জয়, সহজ এবং বোকা রাখুন! জটিল জিনিসগুলির দরকার নেই যা এখনও পরিষ্কার এবং সহজ হতে পারে।
আল-মোতাহাফার

2

আপনি যে ফাইলগুলি সংশোধন করতে চান সেগুলি যদি একটি ডিরেক্টরিতে থাকে তবে আপনি প্রয়োজনীয় প্যাটার্নের সাহায্যে সেগুলিকে ls করতে পারেন।

উদাহরণস্বরূপ, পিডাব্লুডিতে আমার সমস্ত ডাউনলোড করা .আরুন ফাইলগুলি এক্সিকিউটেবলে পরিবর্তন করতে হবে:

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