কোনও নির্দিষ্ট ব্যবহারকারীর মালিকানাধীন সমস্ত ফাইল পুনরাবৃত্তভাবে ছুঁড়ে ফেলা হয়


32

কোনও নির্দিষ্ট ব্যবহারকারীর মালিকানাধীন সমস্ত ফাইল কী খুঁজে পাওয়া এবং ছুঁড়ে ফেলা সম্ভব? আমি ভুল ব্যবহারকারী হিসাবে অনেকগুলি জিনিস করেছি এবং ফাইলগুলির সঠিক ব্যবহারকারীর মালিকানা দরকার।

আমি কি পুনরাবৃত্ত এবং শর্তসাপেক্ষ উপায় যা ফাইল এবং ডিরেক্টরিগুলির একগুচ্ছ বন্ধন করতে পারি?

উত্তর:


60

আপনি এই জাতীয় কিছু দিয়ে এই পোর্টেবল ফাইন্ড কমান্ডটি ব্যবহার করতে পারেন।

find . -user old-user -exec chown new-user:new-group {} \;

-নাম বিকল্পগুলির সাথে নির্দিষ্ট ফাইলগুলি খুঁজে পাওয়ার জন্য আপনি এটি প্রসারিত করতে পারেন (POSIX নন তবে OSX এ উপলব্ধ)

find . -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

দ্য . বর্তমান ফোল্ডার এবং নীচের জন্য দাঁড়িয়েছে, যাতে আপনি একটি বেস হিসাবে একটি নির্দিষ্ট পাথ ব্যবহার করতে পারেন।

find /var/www/ -iname '*.html' -user www-data -exec chown www-data:www-data {} \;

আমি যা খুঁজছিলাম তবে কেবল লক্ষ্য করা যায় যে new-user:new-usernew-user:new-group
ছোটাছুটির

2
আমি অনুমান করছি কোঁকড়ানো বন্ধনীগুলি ফাঁকা জায়গাগুলি সঠিকভাবে পরিচালনা করতে উদ্ধৃতিতে থাকা উচিত। সুতরাংfind . -user old-user -exec chown new-user:new-group "{}" \;
ড্যান বেনামি

যদি অন্য কেউ কিভাবে ফাইল খুঁজে পায় তার জন্য খুঁজছেন হয় না একটি নির্দিষ্ট ব্যবহারকারী (একটি বাড়িতে ডিরেক্টরিতে অবস্থিত যে সকল ব্যবহারকারী মালিকানাধীন না হয় ব্যবহারকারীর ফাইল), আপনি যোগ করতে পারেন মালিকানাধীন '!' -user other-userবিপরীতে সন্ধান করতে বিভাগে। উদাহরণস্বরূপ find . ! -user other-user,।
জন

প্রায়শই উপরোক্তগুলি যুক্ত করার সময় আরও কার্যকর হয় -group old-group। এইভাবে আপনি গ্রুপের মালিকানা (অ্যাডমিন, স্টাফ, সিলিওথগ্রুপ নাম) সংরক্ষণ করতে পারেন
ব্রায়ানালমারিট


12

তুমি ব্যবহার করতে পার

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group  *

ম্যানুয়াল থেকে chown --help:

  --from=CURRENT_OWNER:CURRENT_GROUP
                     change the owner and/or group of each file only if
                     its current owner and/or group match those specified
                     here.  Either may be omitted, in which case a match
                     is not required for the omitted attribute.

সম্পাদনা করুন : এটি অবশ্যই লিনাক্স এবং বেশিরভাগ ইউএনআইতে কাজ করে । ওএসএক্সের জন্য (যা বিএসডি ভিত্তিক) @ স্টেফেনট্রেপড এর সমাধান দেখুন see


+1 তবে এটি ওএসএক্সে কাজ করবে না, এর chownবিকল্পটি নেই, এখানে দেখুন
টেরডন

ওহো, প্রকৃতপক্ষে, আমি ট্যাগটি ওএসএক্সকে মিস করেছি :) ভোট দিয়েছেন @ স্টেফেন ট্র্যাপড।
রিক

chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group *ফোল্ডার কমান্ড চালিত লুকানো ফাইলগুলি এড়িয়ে যাবে, তবে chown --from=CURRENT_OWNER:CURRENT_GROUP -R new_owner:new_group .পিতৃ ফোল্ডারে লুকানো ফাইলগুলির জন্যও কাজ করে।
ল্যাশে

3

-hচাপের বিকল্পটি কেবল লক্ষ্য নয়, প্রতীকী লিঙ্ক ফাইলগুলির অনুমতি পরিবর্তন করে।

সফ্টওয়্যার বাইনারি ফোল্ডারগুলিতে এটি করার সময় যা গুরুত্বপূর্ণ হতে পারে, যা সংস্করণগুলির মধ্যে স্যুইচলিক লিঙ্ক ব্যবহার করে।

find . -user old-user -exec chown -h new-user:new-group {} \;

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