রিকার্সিভ মোড কেবল ফাইলগুলিতে নয় ডিরেক্টরিতে কাজ করে। '* .Pdf' গ্লোব ব্যবহার করে শেলটি ফাইল তালিকাটি ছাঁটাইতে প্রেরণ করছে, যা এই ফাইলগুলি দেখায় এবং এটি যে ফাইলগুলি দেখায় তার অনুমতিগুলি পরিবর্তন করে।
মনে রাখবেন, শেলগুলিতে, গ্লোবটি শেল দ্বারা মূল্যায়ন করা হয়, আদেশ নয় not যদি গ্লোব ফাইলগুলির সাথে মিলে যায় তবে সেগুলি কমান্ডের কাছে পাঠানো হবে এবং কমান্ডটি কখনই কোনও গ্লোব অস্তিত্ব জানতে পারে না। (এটি কীভাবে উইন্ডোজ কমান্ড প্রম্পট জিনিসগুলি ব্যবহার করত তার চেয়ে আলাদা)। আপনার যদি একটি dir থাকে, বিষয়বস্তু সহ কিছু:
machine:$ ls -F
file1.pdf file2.pdf other.txt subdir/
এবং আপনি টাইপ করেছেন:
chown -R someuser:somegroup *.pdf
শেলটি প্রথমে তালিকা তৈরি করবে: file1.pdf file2.pdf
এবং তারপরে আপনার আদেশটি চালান:
chown -R someuser:somegroup file1.pdf file2.pdf
দেখুন -আর কাজ করার জন্য কোনও ডিরেক্টরি নেই। এটি আপনি যা চেয়েছিলেন তা করে - কমান্ড লাইনে দুটি ফাইলের মালিকানা পরিবর্তন করে, সেই উদ্বোধক-আর পতাকাটিকে উপেক্ষা করে।
আপনি যা চান তা করতে, '* .pdf'টিকে এই ডিরেক্টরি এবং উপ-ডিরেক্টরিগুলির জন্য একটি find
নিদর্শন হিসাবে ব্যবহার করতে, আপনি ব্যবহার করতে পারেন যা কোনও ফাইলের নামের সাথে মেলে এমন ফাইলগুলি খুঁজে পেতে পারে (বা অনেকগুলি ক্রাইটেরিয়া) এবং একটি উপকমান্ডে যেতে পারে
find . -type f -name '*.pdf' | xargs chown someuser:somegroup
এটি বর্তমান দির থেকে শুরু হয় '' নামের প্যাটার্নের ফাইল (ফাইল টাইপ চ) অনুসন্ধান '*.pdf'
করার জন্য xargs এ চলে যায়, যা chmod এ একটি কমান্ড লাইন তৈরি করে। প্যাটার্নটির চারপাশে উদ্ধৃতিগুলি লক্ষ্য করুন '*.pdf'
, মনে রাখবেন যে শেলটি যদি পারে তবে একটি গ্লোব তৈরি করবে, তবে আপনি চান যে প্যাটার্নটি এতে চলে গেছে find
, তাই আপনাকে এটি উদ্ধৃত করতে হবে।
যেহেতু ফাইলের নামের মধ্যে স্পেস থাকতে পারে, আপনি এটিকে ফাঁকা স্থানের ফাইল-নাম নিরাপদ করতে একটি কৌশল ব্যবহার করতে চান:
find . -type f -name '*.pdf' -print0 | xargs -0 chown someuser:somegroup
ব্যাশ 3 এবং নিম্নের ক্ষেত্রে, আপনার এটি করার প্রয়োজন এটি। আরও শক্তিশালী গ্লোব্বিং ব্যাশ 4 (সহ shopt -s globstar
) এবং অন্যান্য শেলগুলিতে উপলব্ধ। পুনরাবৃত্ত গ্লোব ব্যবহার করে zsh এ একই **
:
chown -R someuser:somegroup ./**/*.pdf
shopt -s globstar
পুনরাবৃত্তাকার গ্লোববিং করে সেই ব্যাশ 4 প্রতিফলিত করতে সম্পাদিত ।