ابزار کاربر

ابزار سایت


terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line

تفاوت‌ها

تفاوت دو نسخهٔ متفاوت از صفحه را مشاهده می‌کنید.

پیوند به صفحه‌ی تفاوت‌ها

نگارش قبل در دو طرفنگارش قبل
نگارش بعد
نگارش قبل
terminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line [2019/01/04 13:06] – [سوییچ exec- ببعد از یافتین جستجو عملیات خاصی را انجام میدهد] phoenixterminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line [2019/01/04 15:11] (فعلی) – [یافتن تمامی فایل ها در مالکیت یک کاربر ویژه] phoenix
خط 278: خط 278:
 </code>  </code> 
 =====  چگونه فایل ها را بر اساس زمان پیدا کنیم؟ ===== =====  چگونه فایل ها را بر اساس زمان پیدا کنیم؟ =====
-در [[ترمینال:دستور_find_جستجوی_فایل_ها_و_دایرکتوری_ها#دسته چهارم: جستجوی فایل ها و پوشه ها بر اساس تاریخ و زمان|دسته چهارم]] با مثال این موضوع را بررسی کردیم در این قسمت تصمیم داریم به صورت دقیق تر این بخش را بررسی کنیم+در [[#دسته چهارم: جستجوی فایل ها و پوشه ها بر اساس تاریخ و زمانterminal:f:how-to-find-files-and-folders-in-linux-using-the-command-line|دسته چهارم]] با مثال این موضوع را بررسی کردیم در این قسمت تصمیم داریم به صورت دقیق تر این بخش را بررسی کنیم
 در این بخش چگونگی پیدا کردن فایل ها بر اساس زمان گفته خواهد شد هر فایل شامل سه مهر زمانی **Change Time - Access Time - Modift Time** است. در ادامه سوئیچ های مرتبط با هر کدام از **Timestamp** های گفته شده در دستور **find** آورده شده است.  در این بخش چگونگی پیدا کردن فایل ها بر اساس زمان گفته خواهد شد هر فایل شامل سه مهر زمانی **Change Time - Access Time - Modift Time** است. در ادامه سوئیچ های مرتبط با هر کدام از **Timestamp** های گفته شده در دستور **find** آورده شده است. 
   *** atime- :** زمان دسترسی (زمانیکه فایل خوانده میشود)   *** atime- :** زمان دسترسی (زمانیکه فایل خوانده میشود)
خط 284: خط 284:
   ***mtime- :** زمان تغییر محتوای فایل   ***mtime- :** زمان تغییر محتوای فایل
  
-با استفاده از دستور **stat** میتوانستیم اطلاعات زمانی بالا را پیدا کنیم. اگر با دستور [[:دستور_cat_نمایش_فایل_متنی_الحاق_چند_فایل_و|cat]] فایلی را بخوانید به آن دسترسی داشته اید و زمان **Access Time** تغییر میکند. اگر با دستوری مانند [[:دستور_vi_یا_vim_ویرایشگر_متن|vi]] محتوای یک فایل متنی را تغییر دهید زمان های **Modift Time** و **Change Time** تغییر میکند. اگر با دستور [[ترمینال:دستور_chmod_تغییر_مجوز_فایل_و_دایرکتوری|chmod]] مجوزهای فایل را تغییر دهید زمان **Change Time** تغییر میکند و برای دایرکتوری ها نیز اگر با دستور [[ترمینال:دستور_cd_تعویض_دایرکتوری_در_حال_کار|cd]] تغییر دایرکتوری به دایرکتوری جدید دهید زمان **Access Time** آن دایرکتوری جدید تغییر خواهد کرد. اگر با دستورهایی مانند [[:دستور_mkdir_ایجاد_دایرکتوری_جدید|mkdir]] یا [[terminal:دستور_touch_ایجاد_فایل|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
خط 340: خط 340:
 </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;>
خط 366: خط 366:
 </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
خط 374: خط 374:
 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
terminal/f/how-to-find-files-and-folders-in-linux-using-the-command-line.txt · آخرین ویرایش: 2019/01/04 15:11 توسط phoenix

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki