نگارش قبل در دو طرفنگارش قبلنگارش بعد | نگارش قبل |
terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line [2019/01/04 18:23] – [چگونه فایل ها را بر اساس زمان پیدا کنیم؟] phoenix | terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line [2019/01/04 18:41] (فعلی) – [یافتن تمامی فایل ها در مالکیت یک کاربر ویژه] phoenix |
---|
***mtime- :** زمان تغییر محتوای فایل | ***mtime- :** زمان تغییر محتوای فایل |
| |
با استفاده از دستور **stat** میتوانستیم اطلاعات زمانی بالا را پیدا کنیم. اگر با دستور [[terminal:c:linux_cat_command_usage_with_examples|دستور cat ]] فایلی را بخوانید به آن دسترسی داشته اید و زمان **Access Time** تغییر میکند. اگر با دستوری مانند [[terminal:v:linux_vi_and_vim_editor|دستور vi یا Vim]] محتوای یک فایل متنی را تغییر دهید زمان های **Modift Time** و **Change Time** تغییر میکند. اگر با دستور [[ترمینال:دستور_chmod_تغییر_مجوز_فایل_و_دایرکتوری|chmod]] مجوزهای فایل را تغییر دهید زمان **Change Time** تغییر میکند و برای دایرکتوری ها نیز اگر با دستور [[ترمینال:دستور_cd_تعویض_دایرکتوری_در_حال_کار|cd]] تغییر دایرکتوری به دایرکتوری جدید دهید زمان **Access Time** آن دایرکتوری جدید تغییر خواهد کرد. اگر با دستورهایی مانند [[terminal:m:how_to_create_a_directory_or_folder_mkdir_command|دستور mkdir]] یا [[terminal:t:how_to_use_the_touch_command|دستور touch]] فایل یا دایرکتوری جدیدی را ایجاد کنید یا اگر نام یا دایرکتوری را تغییر دهید زمان های **Modift Time** و **Change Time** تغییر میکنند و در نهایت مانند فایل اگر مجوز را با دستور [[ترمینال:دستور_chmod_تغییر_مجوز_فایل_و_دایرکتوری|chmod]] تغییر دهید زمان **Change Time** تغییر خواهد نمود. شکل کلی استفاده از آنها بصورت زیر است. | با استفاده از دستور **stat** میتوانستیم اطلاعات زمانی بالا را پیدا کنیم. اگر با دستور [[terminal:c:linux_cat_command_usage_with_examples|دستور cat ]] فایلی را بخوانید به آن دسترسی داشته اید و زمان **Access Time** تغییر میکند. اگر با دستوری مانند [[terminal:v:linux_vi_and_vim_editor|دستور vi یا Vim]] محتوای یک فایل متنی را تغییر دهید زمان های **Modift Time** و **Change Time** تغییر میکند. اگر با دستور [[terminal:c:how-to-change-permissions-and-owners-via-command-line|chmod]] مجوزهای فایل را تغییر دهید زمان **Change Time** تغییر میکند و برای دایرکتوری ها نیز اگر با دستور [[terminal:c:changing_to_another_directory_cd_command|cd]] تغییر دایرکتوری به دایرکتوری جدید دهید زمان **Access Time** آن دایرکتوری جدید تغییر خواهد کرد. اگر با دستورهایی مانند [[terminal:m:how_to_create_a_directory_or_folder_mkdir_command|دستور mkdir]] یا [[terminal:t:how_to_use_the_touch_command|دستور touch]] فایل یا دایرکتوری جدیدی را ایجاد کنید یا اگر نام یا دایرکتوری را تغییر دهید زمان های **Modift Time** و **Change Time** تغییر میکنند و در نهایت مانند فایل اگر مجوز را با دستور [[terminal:c:how-to-change-permissions-and-owners-via-command-line|chmod]] تغییر دهید زمان **Change Time** تغییر خواهد نمود. شکل کلی استفاده از آنها بصورت زیر است. |
<code;bash;> | <code;bash;> |
find <SEARCH_PATH> -atime X | find <SEARCH_PATH> -atime X |
</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 |