در این آموزش ما قصد داریم دو ترفند ساده از ترمینال لینوکس برای شما شرح دهیم که به شما این امکان را میدهد که تنها تمام فایل های که امروز تغییر کرده اند را لیست کنید. یکی از مشکلات مشترک کاربران لینوکسی که در شل لینوکس با آن روبه روی میشوند پیدا کردن فایل هایی با یک نام مشخص هست، و این مسئله زمانی که شما نام فایل را بدانید میتواند آسانتر باشد.
به هر حال، فرض میکنیم که شما نام فایلی را که در ساعت ها قبل تر در طول روز ساختید (در پوشه home خود که همچنین شامل صدها فایل دیگر است) فراموش کرده اید و اکنون شما به صورت فوری نیاز به استفاده از آن دارید.
در زیر راه های مختلفی برای لیست کردن تمام فایل های که امروز ساخته اید یا تغییر داده اید (مستقیم یا غیرمستقیم) را توضیح میدهیم.
1 - استفاده از دستور ls
با استفاده از دستور ls، شما میتوانید فقط فایل های امروز در فولدر home تان را لیست کنید همانند آنچه که در زیر میبینید :
آپشن -a :
نمایش لیست تمام فایل ها به همراه فایل های hidden
آپشن -l :
لیست کردن فایل ها به صورت طولانی به همراه توضیحات
آپشن --time-style=FORMAT :
نمایش time به format مشخص شده
+%D :
نمایش تاریخ به فرمت %m%d%y
علاوه براین شما میتوانید خروجی لیست را بر اساس حروف الفبا با استفاده از آپشن -X مرتب کنید.
همچنین شما میتوانید با استفاده از -S بر اساس سایز(از بزرگ به کوچک) لیست کنید.
2 - استفاده از دستور find
همچنین استفاده از دستور find که عملا قابلیت انعطاف پذیری بیشتری نسبت به دستور ls دارد و آپشن های بیشتری، برای اهداف یکسان ارائه میدهد نیز امکانپذیر است :
-maxdepth :
با این آپشن میتوانیم حداکثر عمق جستجو را با عنوان یک level مشخص کنیم که به دستور میگوید تا چندین level از subdirecotry های موجود از دایرکتوری جاری و یا دایرکتوری مورد جستجوی ما را مورد بررسی و search قرار دهد. (در اینجا دایرکتوری جاری، مورد نظرمان میباشد)
-newerXy :
این گزینه در صورتی قابل استفاده است که timestamp X فایلی که در جستجوی آن هستیم از timestamp Y آن جدیدتر باشد. بجای X و Yمیتوان هر یک از حروف زیر را استفاده کرد :
در دستور زیر تنها فایل هایی که در تاریخ 2016-12-06 تغییر (modify) داده شده اند جستجو میشوند:
نکته مهم : از فرمت درست date همانطور که در دستور find در بالا دیدید استفاده کنید و در صورتی که از فرمت اشتباه استفاده کنید error شبیه به زیر دریافت خواهید کرد.
همچنین میتوانید از فرمت های درست زیر نیز استفاده کنید.
شما میتوانید اطلاعات کاربردی بسیار بیشتری در مورد دو دستور ls و find در سری مقالات زیر مطالعه کنید.
آموزش کامل دستور ls در لینوکس به همراه 15 مثال کاربردی
هفت ترفند سریع از دستور ls در لینوکس که کاربران باید بدانند
دستور find در لینوکس به همراه 35 مثال عملی
جستجوی چندین فایل به صورت همزمان با دستور find
نحوه پیدا کردن تعداد فایل ها، دایرکتوری ها و زیر مجموعه های آنها در لینوکس
در این مقاله ما به شما دو ترفند مهم درباره چگونگی لیست کردن تنها فایل های امروزتان (فایل هایی که در طول روز جاری با آنها کار کرده اید) با کمک از دو دستور ls و find توضیح دادیم. خوشحال میشیم از تجربیات شما در این مورد هم استفاده کنیم.
به هر حال، فرض میکنیم که شما نام فایلی را که در ساعت ها قبل تر در طول روز ساختید (در پوشه home خود که همچنین شامل صدها فایل دیگر است) فراموش کرده اید و اکنون شما به صورت فوری نیاز به استفاده از آن دارید.
در زیر راه های مختلفی برای لیست کردن تمام فایل های که امروز ساخته اید یا تغییر داده اید (مستقیم یا غیرمستقیم) را توضیح میدهیم.
1 - استفاده از دستور ls
با استفاده از دستور ls، شما میتوانید فقط فایل های امروز در فولدر home تان را لیست کنید همانند آنچه که در زیر میبینید :
آپشن -a :
نمایش لیست تمام فایل ها به همراه فایل های hidden
آپشن -l :
لیست کردن فایل ها به صورت طولانی به همراه توضیحات
آپشن --time-style=FORMAT :
نمایش time به format مشخص شده
+%D :
نمایش تاریخ به فرمت %m%d%y
کد PHP:
# ls -al --time-style=+%D | grep 'date +%D'
علاوه براین شما میتوانید خروجی لیست را بر اساس حروف الفبا با استفاده از آپشن -X مرتب کنید.
کد PHP:
# ls -alX --time-style=+%D | grep 'date +%D'
کد PHP:
# ls -alS --time-style=+%D | grep 'date +%D'
2 - استفاده از دستور find
همچنین استفاده از دستور find که عملا قابلیت انعطاف پذیری بیشتری نسبت به دستور ls دارد و آپشن های بیشتری، برای اهداف یکسان ارائه میدهد نیز امکانپذیر است :
-maxdepth :
با این آپشن میتوانیم حداکثر عمق جستجو را با عنوان یک level مشخص کنیم که به دستور میگوید تا چندین level از subdirecotry های موجود از دایرکتوری جاری و یا دایرکتوری مورد جستجوی ما را مورد بررسی و search قرار دهد. (در اینجا دایرکتوری جاری، مورد نظرمان میباشد)
-newerXy :
این گزینه در صورتی قابل استفاده است که timestamp X فایلی که در جستجوی آن هستیم از timestamp Y آن جدیدتر باشد. بجای X و Yمیتوان هر یک از حروف زیر را استفاده کرد :
- a : این آپشن access time فایل میباشد.
- B :این آپشن brith time فایل میباشد.
- c : وضعیت change time از inode فایل
- m : برای modification time فایل
- t : با استفاده از این آپشن میتوانید مستقیما در دستور یک زمان همانند دستور زیر استفاده کنید.
در دستور زیر تنها فایل هایی که در تاریخ 2016-12-06 تغییر (modify) داده شده اند جستجو میشوند:
کد PHP:
# find . -maxdepth 1 -newermt "2016-12-06"
نکته مهم : از فرمت درست date همانطور که در دستور find در بالا دیدید استفاده کنید و در صورتی که از فرمت اشتباه استفاده کنید error شبیه به زیر دریافت خواهید کرد.
کد PHP:
# find . -maxdepth 1 -newermt "12-06-2016"
find: I cannot figure out how to interpret '12-06-2016' as a date or time
کد PHP:
# find . -maxdepth 1 -newermt "12/06/2016"
OR
# find . -maxdepth 1 -newermt "12/06/16"
شما میتوانید اطلاعات کاربردی بسیار بیشتری در مورد دو دستور ls و find در سری مقالات زیر مطالعه کنید.
آموزش کامل دستور ls در لینوکس به همراه 15 مثال کاربردی
هفت ترفند سریع از دستور ls در لینوکس که کاربران باید بدانند
دستور find در لینوکس به همراه 35 مثال عملی
جستجوی چندین فایل به صورت همزمان با دستور find
نحوه پیدا کردن تعداد فایل ها، دایرکتوری ها و زیر مجموعه های آنها در لینوکس
در این مقاله ما به شما دو ترفند مهم درباره چگونگی لیست کردن تنها فایل های امروزتان (فایل هایی که در طول روز جاری با آنها کار کرده اید) با کمک از دو دستور ls و find توضیح دادیم. خوشحال میشیم از تجربیات شما در این مورد هم استفاده کنیم.