কারও মালিকানাধীন নয় এমন ফাইল অনুসন্ধান করা হচ্ছে


182

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

উত্তর:


274

সন্ধান (1) ইউটিলিটির প্রাথমিক রয়েছে যা "" ব্যবহার করে অবহেলা করা যায় ("বিপরীত") হতে পারে! " অপারেটর. প্রম্পটে কোনও ব্যক্তিকে অবশ্যই ব্যাকস্ল্যাশ সহকারে অবহেলা থেকে বাঁচতে হবে কারণ এটি শেল মেটাচার্যাক্টর। ফলাফল:

find . \! -user foo -print

6
পলায়নপর !ঐচ্ছিক মনে করা হয়
doub1ejack

1
আউটপুটটি পাইপিং xargs -I{} -P3 -- ${cmdhere} {}করতে প্রতিটি ফাইলের সমান্তরালে} {সেমিডেয়ার। চালিত থাকতে পারে। cmdhere :: = মানক ইউনিক্স ইউটিস; স্ট্যান্ডার্ড ইউনিক্স ইউটিস :: :: চিমড, ক্লাউন, স্ট্যাট, এলএস, ...
ডুইট স্পেন্সার

1
@ সোরিন আপনি কি প্রথম বা দ্বিতীয় পথে find . ...পাইপিং বলতে চাইছেন xargs?
কেভ

3
find . ! -user foo -exec chown <owner>:<group> {} \;
সন্ধানটির একসেট

1
আউটপুট হিসাবে কীভাবে মালিকের তথ্য যুক্ত করবেন?
ডাচ ট্রান

38

কারও মালিকানাধীন নয় এমন ফাইল অনুসন্ধান করা হচ্ছে

অন্যরা শরীরে "কোনও নির্দিষ্ট ব্যবহারকারীর মালিকানাধীন নয়" প্রশ্নের উত্তর দিয়েছেন । এখানে একটি যা শিরোনামের প্রশ্নের উত্তর দেয় তবে সরবরাহ করা হয়নি:

$ find / -nouser

আপনি এটি এর মতো ব্যবহার করতে পারেন:

$ sudo find /var/www -nouser -exec chown root:apache {} \;

এবং সম্পর্কিত একটি:

$ find / -nogroup

3
আমি আপনাকে প্রযুক্তিটির পক্ষে একটি ভোট দেব, তবে লোকেরা সাধারণত "কারও মালিকানাধীন নয়" বলে যদি তারা বোঝায় যে আপনি কী ব্যাখ্যা করছেন।
শিবুনি

2
@ শিবিমি - হ্যাঁ, এই বিভক্ত চুলের জন্য সঠিক শব্দ শোনাচ্ছে। আমি যে সমস্যার মুখোমুখি হয়েছিলাম তা হ'ল আক্ষরিকভাবে কোনও ব্যবহারকারীর মালিকানাধীন ফাইলগুলি খুঁজে পাওয়া দরকার ছিল। এটি একটি ওয়েব সার্ভার রিফ্রেশ এবং স্থানান্তরিত হওয়ার পরে উপস্থিত হয়েছিল। কিছু ব্যবহারকারীর / গোষ্ঠী আইডির পরিবর্তন হয়েছে সুতরাং আমার একটি শাউন স্ক্রিপ্ট করা দরকার।
jww 3'19

12

-userব্যবহারকারী বা ব্যবহারকারী আইডি দ্বারা সন্ধান করে এবং !প্রিডিকে উল্টে দেয়। তাই ! -user ...,।


2
ডাউনভোটেড কারণ এটি গৃহীত উত্তরের সাথে কিছু যোগ করে না এবং এটি অন্যান্য সম্ভাব্য উত্তরগুলিও মুখোমুখি করে (যেমন নীচে zsh গ্লোব প্যাটার্ন)।
ইউলিস বিএন

9

আপনি এটি ব্যবহার করতে পারেন:

find <dir> ! -user <username> 

2
ডাউনভোটেড কারণ এটি গৃহীত উত্তরের সাথে কিছু যোগ করে না এবং এটি অন্যান্য সম্ভাব্য উত্তরগুলিও মুখোমুখি করে (যেমন নীচে zsh গ্লোব প্যাটার্ন)।
ইউলিস বিএন

5

জেড শেল (zsh) ব্যবহার করে আপনি ব্যবহার করতে পারেন

ls -laR *(^U)

অথবা

ls -la **/*(^U)

আপনার নিজের মালিকানা অনুসারে পুনরুক্তিযুক্ত সমস্ত ফাইল অনুসন্ধান করতে।


এটি সত্য যে উপরের কমান্ডটি ডট ফাইলগুলি তালিকাভুক্ত করবে না, এমনকি -aওয়াইল্ডকার্ড প্রসারণের কারণে পতাকা সহ । ডট ধরা ফাইল zsh ব্যবহার dotglobবিকল্প: setopt dotglob। এক লাইন ইন: (setopt dotglob; ls **/*(^U) )। প্রথম বন্ধনীগুলি একটি সাব-শেলের মধ্যে চালানো হবে যাতে আপনার কাজ setopt nodotglobশেষ করার পরে চালাতে হবে না ।
জোড়োয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.