نگارش قبل در دو طرفنگارش قبلنگارش بعد | نگارش قبل |
terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line [2019/01/04 18:38] – [چگونه فایل ها را بر اساس زمان پیدا کنیم؟] phoenix | terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line [2019/01/04 18:41] (فعلی) – [یافتن تمامی فایل ها در مالکیت یک کاربر ویژه] phoenix |
---|
</code> | </code> |
===== یافتن تمامی فایل ها در مالکیت یک کاربر ویژه ===== | ===== یافتن تمامی فایل ها در مالکیت یک کاربر ویژه ===== |
در [[ترمینال:دستور_find_جستجوی_فایل_ها_و_دایرکتوری_ها#دسته سوم: جستجو فایل ها بر اساس Owner ها و Group ها ( صاحبان فایل ها و گروه ها)|دسته سوم]] با مثال این موضوع را بررسی کردیم در این قسمت تصمیم داریم به صورت دقیق تر این بخش را بررسی کنیم | در [[terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line#دسته سوم: جستجو فایل ها بر اساس Owner ها و Group ها ( صاحبان فایل ها و گروه ها)|دسته سوم]] با مثال این موضوع را بررسی کردیم در این قسمت تصمیم داریم به صورت دقیق تر این بخش را بررسی کنیم |
در لینوکس هر فایل دارای مجوزهای: **Write - Read** و **Exeute** برای مالک (**Owner**) و گروه (**Group**) اصلی که کاربر عضو آن و دیگر افراد است. اگر میخواهید فایل هایی متعلق به یک گروه است را پیدا کنید از دستور **find** و به فرمت زیر استفاده کنید. | در لینوکس هر فایل دارای مجوزهای: **Write - Read** و **Exeute** برای مالک (**Owner**) و گروه (**Group**) اصلی که کاربر عضو آن و دیگر افراد است. اگر میخواهید فایل هایی متعلق به یک گروه است را پیدا کنید از دستور **find** و به فرمت زیر استفاده کنید. |
<code;bash;> | <code;bash;> |
</code> | </code> |
اما مشکل خطوط بالا در این است که چون ما میخواهیم برای کاربر **phoenix** در زیر دایرکتوری **home** بگردیم پس قطعا ممکن است دیگر کاربران در دایرکتوری خانگی اشان فایل های داشته باشند که **phoenix** روی آنها مجوزی ندارد | اما مشکل خطوط بالا در این است که چون ما میخواهیم برای کاربر **phoenix** در زیر دایرکتوری **home** بگردیم پس قطعا ممکن است دیگر کاربران در دایرکتوری خانگی اشان فایل های داشته باشند که **phoenix** روی آنها مجوزی ندارد |
ساده ترین کار این است که به جای جستجو در دایرکتوری کلی تر **home/** با دستور [[ترمینال:دستور_cd_تعویض_دایرکتوری_در_حال_کار|cd]] به دایرکتوری خود برویم و آنجا دستور را اجرا کنیم. اما شاید مجبور باشیم که در کل یک دایرکتوری جستجو کنیم پس بهتر است با مفاهیم **Redirection** خطاها را نشان ندهیم از دستور زیر برای نمایش ندادن خطای **Permission Denied** استفاده کنید. | ساده ترین کار این است که به جای جستجو در دایرکتوری کلی تر **home/** با دستور [[terminal:c:changing_to_another_directory_cd_command|cd]] به دایرکتوری خود برویم و آنجا دستور را اجرا کنیم. اما شاید مجبور باشیم که در کل یک دایرکتوری جستجو کنیم پس بهتر است با مفاهیم **Redirection** خطاها را نشان ندهیم از دستور زیر برای نمایش ندادن خطای **Permission Denied** استفاده کنید. |
<code;bash;> | <code;bash;> |
find /home -user phoenix -name "*.sh" 2> /dev/null | find /home -user phoenix -name "*.sh" 2> /dev/null |
find /home -user phoenix -name "*.sh" >~/access_list 2>~/denied_list | find /home -user phoenix -name "*.sh" >~/access_list 2>~/denied_list |
</code> | </code> |
حالا با دستور [[:دستور_cat_نمایش_فایل_متنی_الحاق_چند_فایل_و|cat]] فایل ها را بخوانید. اما اگر بخواهید بدانید چند فایل را دسترسی دارید و چند تا را دسترسی ندارید: | حالا با [[terminal:c:linux_cat_command_usage_with_examples|دستور cat]] فایل ها را بخوانید. اما اگر بخواهید بدانید چند فایل را دسترسی دارید و چند تا را دسترسی ندارید: |
<code;bash;> | <code;bash;> |
find /home -user phoenix -name "*.sh" 2>/dev/null|wc -l | find /home -user phoenix -name "*.sh" 2>/dev/null|wc -l |