কীভাবে লিনাক্সে লুকানো ফাইলগুলি 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.