কীভাবে লিনাক্সে লুকানো ফাইলগুলি chmod এবং chown করবেন?


33

আমি কীভাবে পুনরাবৃত্তভাবে কার্যকর করতে পারি chmodবা chownলুকানো ফাইলগুলির জন্য?

sudo chmod -R 775 * লুকানো ফাইলগুলিতে কাজ করে না।

একই জিনিস জন্য যায় sudo chown -R user:group।

উত্তর:


35

আপনি যদি ঠিক থাকেন তবে বর্তমান ডিরেক্টরিটিও chmod'ing করছেন তবে -Rতা করুন এবং ভারী উত্তোলন করতে দিন । -Rলুকানো ফাইল উপেক্ষা করে না।

sudo chmod -R 775 .

14
এটি ( * .*) এটি করার সবচেয়ে নিরাপদ উপায় নয়। বিশেষত, এটি প্যারেন্ট ডিরেক্টরিতে পুনরাবৃত্তি হবে, যার অর্থ এটি chmodবর্তমান ডিরেক্টরিটির সহোদরগণও। সঠিক * ..?* .[^.]*উপায়টি বা আরও ভাল হবে (ওয়াইল্ডকার্ডগুলি বিবেচনা করে কোনও ফাইলের সাথে মেলে না) $(ls -A)।
— jpalecek

1
@jpalecek: এর আউটপুট lsআনসারসযোগ্য; এটি বিশ্লেষণ করার চেষ্টা করা সমস্যার জন্য জিজ্ঞাসা করছে। যথাযথ পদ্ধতি হ'ল শেল গ্লোব্বিং ব্যবহার করা।
— স্কট সিভেরেন্স

যদিও লিনাক্সে আপনার chmod এর জন্য অর্গগুলির ক্রম পরিবর্তন করার ক্ষমতা রয়েছে, লিনাক্স এবং ওএস এক্স এর মধ্যে এক্স-প্ল্যাট স্ক্রিপ্টগুলি করার সময়, এই আদেশটি আপনার ব্যবহার করা উচিত, উদাহরণস্বরূপ, sudo chmod 775 -Rপেট আপ হবে, সুতরাং এই উত্তরটি আটকে দিন ।
— kayleeFrye_onDeck

35

* লুকানো ফাইলগুলি ডিফল্টরূপে অন্তর্ভুক্ত করে না তবে আপনি যদি ব্যাশে থাকেন তবে আপনি এটি সহ এটি করতে পারেন:

shopt -s dotglob

বাশ এর builtinম্যানুয়ালটিতে এটি সম্পর্কে আরও পড়ুন :

যদি সেট করা থাকে তবে ব্যাশের মধ্যে একটি with দিয়ে শুরু হওয়া ফাইলের নাম অন্তর্ভুক্ত রয়েছে `' ফাইলের নাম সম্প্রসারণের ফলাফলগুলিতে।

এটি *লুকানো ফাইলগুলিও অন্তর্ভুক্ত করবে ।

chmod -R 775 *

এটি দিয়ে অক্ষম করুন:

shopt -u dotglob

2
কিভাবে এটি করতে zsh?
— কিছুই-বিশেষ-এখানে

2
আপনি (D)গ্লোবিং কোয়ালিফায়ার ব্যবহার করেন , উদাহরণস্বরূপchmod -R 775 *(D)
— slhck করুন

2

আর একটি বিকল্প হ'ল findআমি এটি পছন্দ করি কারণ এটির উপর আপনার খুব সূক্ষ্ম দানা নিয়ন্ত্রণ থাকতে পারে।

find <path to start from> -exec chown <options> {} \+

find -path '<path to include>' -exec chown <options> {} \+

একমাত্র ক্ষতিটি হ'ল findবিভিন্ন সংস্করণে বিভিন্ন সিনট্যাক্স রয়েছে।


2

বর্তমান ডিরেক্টরিতে থাকা সমস্ত ফাইল, লুকানো ফাইলগুলি সহ পুনরাবৃত্তভাবে:

chmod 755 -R ./* ./.[!.]*

বর্তমান ডিরেক্টরিতে থাকা সমস্ত ফাইল , লুকানো ফাইলগুলি সহ পুনরাবৃত্তভাবে নয় :

chmod 755 ./* ./.[!.]*

এটি 2 টি বিন্দু দিয়ে শুরু করে কোনও ব্যতিক্রম ফাইলের নাম পরিবর্তন করবে না, উদাহরণস্বরূপ, "./..thisonescapesunharmed.txt"

এছাড়াও, "x" বিটটি সরিয়ে না দেওয়ার বিষয়ে সতর্ক থাকুন, না হলে আপনার সমস্ত ডিরেক্টরি অ্যাক্সেসযোগ্য হবে না (একটি ডায়ারে সিডিতে এক্স বিট লাগবে)।

এই সতর্কতাটি মনে রাখবেন: খালি ব্যবহার না *কিন্তু ./*পরিবর্তে।

ডিরেক্টরিতে অনুমতি নির্ধারণে সমস্যা এড়াতে findপরিবর্তে ব্যবহার করুন।

find . -type f -exec chmod `VALUE` {} \;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.