پرش به محتویات

درسنامه ۹: مدیریت تاریخ و تقویم با date و cal

نمایش تاریخ و زمان فعلی با date

دستور date اطلاعات زمانی سیستم را چاپ می‌کند. اجرای سادهٔ آن خروجی پیش‌فرض را نشان می‌دهد که شامل روز هفته، ماه، روز، زمان، منطقهٔ زمانی و سال است.

$ date
Thu Jun 20 10:42:03 +0330 2024

قالب‌بندی سفارشی

با استفاده از + و رشته‌های قالب‌بندی می‌توانید خروجی را متناسب با نیاز خود تنظیم کنید. هر کاراکتر پس از % جایگزین بخش خاصی از زمان می‌شود.

$ date "+%Y-%m-%d %H:%M"
2024-06-20 10:42
$ date "+Week %V of %Y"
Week 25 of 2024

نمونه‌ای از پرکاربردترین نگاشت‌ها: - %Y: سال چهار رقمی - %m: ماه عددی (۰۱ تا ۱۲) - %d: روز ماه - %H:%M:%S: ساعت به فرمت ۲۴ساعته

کار با زمان‌های دیگر

گزینهٔ -d امکان تبدیل و نمایش زمان دلخواه را فراهم می‌کند. مثال زیر می‌گوید «فردا همین ساعت»:

$ date -d "tomorrow"
Fri Jun 21 10:42:03 +0330 2024

همچنین می‌توانید رشته‌های مشخص مانند 2024-12-01 09:30 را به فرمت انسانی تبدیل کنید یا اختلاف زمانی بسنجید.

مشاهدهٔ تقویم با cal

دستور cal (Calendar) تقویم دلخواه را چاپ می‌کند. بدون آرگومان، ماه جاری نمایش داده می‌شود.

$ cal
     June 2024
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

گزینه‌های پرکاربرد cal

  • cal -y 2025: تقویم کامل سال ۲۰۲۵ را چاپ می‌کند.
  • cal 3 2024: تقویم ماه مارس سال ۲۰۲۴ را نمایش می‌دهد.
  • ncal: نسخهٔ جایگزین cal است که چینش متفاوتی دارد و اطلاعات بیشتری مثل شمارهٔ هفته را نشان می‌دهد.
$ ncal -w
    June 2024
Mo Tu We Th Fr Sa Su  Ne
                1  2 22
 3  4  5  6  7  8  9 23
10 11 12 13 14 15 16 24
17 18 19 20 21 22 23 25
24 25 26 27 28 29 30 26

کاربردهای عملی

  • اسکریپت‌های پشتیبان‌گیری برای برچسب‌گذاری فایل‌ها با تاریخ ساخت از date +"%Y%m%d" استفاده می‌کنند.
  • در برنامه‌ریزی تیمی، گزارش گرفتن از موعدها یا تعطیلات با cal -y سریع‌تر از جست‌وجو در تقویم‌های گرافیکی است.
  • برای یادآوری رویدادها، می‌توان خروجی cal را با ابزارهایی مثل grep ترکیب کرد و روزهای خاص را برجسته نمود.