วิธีค้นหาวันที่เมื่อวานใน Bash

Withi Khnha Wan Thi Meux Wan Ni Bash



Bourne Again Shell หรือที่รู้จักในชื่อ ทุบตี มาพร้อมกับยูทิลิตี้บรรทัดคำสั่งต่าง ๆ เพื่อจัดการและทำให้งานเป็นอัตโนมัติ ยูทิลิตี้หนึ่งดังกล่าวคือ วันที่ คำสั่งที่ใช้เพื่อรับวันที่/เวลาและจัดการมัน ใช้ วันที่ คุณยังสามารถรับวันที่ของเมื่อวานเพื่อใช้ในสคริปต์ Bash ได้

การรับวันที่ของเมื่อวานมีประโยชน์ในการสร้างรายงาน การจัดการข้อมูล และการจัดกำหนดการงาน







ในบทช่วยสอนนี้ ฉันจะสำรวจวิธีใช้คำสั่ง date เพื่อรับวันที่ของเมื่อวานใน Bash



คำสั่ง Bash date คืออะไร
วิธีค้นหาวันที่เมื่อวานใน Bash บน Linux
1. ค้นหาวันที่ของเมื่อวานโดยใช้ตัวเลือก -d หรือ –date



ค้นหาวันที่ของเมื่อวานโดยใช้ EPOCHSECONDS
วิธีค้นหาวันที่เมื่อวานใน Bash บน macOS
บทสรุป





คำสั่ง Bash date คืออะไร

คำสั่ง date ใน Bash จะแสดงวันที่และเวลาในเทอร์มินัล นอกจากนี้ยังสามารถใช้เพื่อตั้งค่า เปลี่ยนแปลง หรือพิมพ์วันที่และเวลาในรูปแบบต่างๆ คำสั่ง date มีประโยชน์มากสำหรับการทำงานอัตโนมัติและกำหนดเวลางานในการเขียนสคริปต์ Bash

หากต้องการดูวันที่และเวลาปัจจุบัน เพียงพิมพ์ วันที่ ในเทอร์มินัล:



วันที่



หากต้องการรับวันที่ในรูปแบบ YYYY-MM-DD ให้ใช้คำสั่งต่อไปนี้:

วันที่ + '%Y/%m/%d'



คุณสามารถใช้เครื่องหมายขีดกลาง (-) แทนเครื่องหมายทับ (/) ในคำสั่งด้านบนได้

อักขระควบคุมรูปแบบที่ใช้กันทั่วไปมีดังต่อไปนี้:

%d แสดงวันของเดือน ตัวอย่างเช่น: 02 หรือ 03
%D แสดงวันที่ในรูปแบบเดือน-วัน-ปี
%เมตร แสดงเดือน; ตัวอย่างเช่น: 01-12
%ใน แสดงวันในสัปดาห์ เช่น 1-7 1 คือวันจันทร์ 4 คือวันพฤหัสบดี
%ใน แสดงหมายเลขสัปดาห์ของปี ตัวอย่างเช่น 00-53, 00 คือสัปดาห์แรกของปี 01 คือสัปดาห์ที่สองของปี
%เจ แสดงวันของปี เช่น 001 เป็นวันแรกของปี 366 เป็นวันสุดท้าย

สำหรับรายละเอียดเพิ่มเติม ให้ดำเนินการคำสั่งต่อไปนี้เพื่อเข้าถึงหน้าคู่มือของคำสั่ง date:

ผู้ชาย วันที่


อีกหนึ่งทางเลือกสำคัญที่มาพร้อมกับ วันที่ คำสั่งคือ -d หรือ - -วันที่ . การใช้ตัวเลือกเหล่านี้ทำให้เราสามารถรับวันที่ก่อนหน้า วันที่ในอนาคต และแม้แต่ของเมื่อวานได้ ตัวเลือกเหล่านี้ใช้เพื่อแสดงเวลาที่กำหนดในรูปแบบของสตริง ตัวอย่างเช่น:

วันที่ --วันที่ 'เสาร์ที่ผ่านมา'



หรือ:

วันที่ -d 'เสาร์ที่ผ่านมา'



สตริงอื่นๆ ที่ตัวเลือก -d หรือ –date สามารถยอมรับได้มีดังต่อไปนี้:

    • พรุ่งนี้
    • เมื่อวาน
    • เสาร์ที่ผ่านมา
    • วันเสาร์หน้า
    • อาทิตย์ที่แล้ว
    • สัปดาห์หน้า
    • ปีที่แล้ว
    • ปีหน้า
    • X วินาทีที่แล้ว
    • X วันที่ผ่านมา
    • X สัปดาห์ที่แล้ว
    • ปีที่แล้ว
    • เอ็กซ์วัน
    • สัปดาห์ที่ X
    • ปี X

ในส่วนถัดไปผมจะใช้งาน -d และ - -วันที่ ตัวเลือกเพื่อค้นหาวันที่ของเมื่อวาน

วิธีค้นหาวันที่เมื่อวานใน Bash บน Linux

หากต้องการค้นหาวันที่ของเมื่อวานใน Bash มีหลายวิธี ฉันจะหารือแต่ละวิธี:

    • ค้นหาวันที่เมื่อวานโดยใช้ตัวเลือก -d หรือ –date
    • ค้นหาวันที่ของเมื่อวานโดยใช้ EPOCHSECONDS

บันทึก: การค้นหาวันที่ของเมื่อวานขึ้นอยู่กับความสามารถของวันที่ของระบบ

1. ค้นหาวันที่ของเมื่อวานโดยใช้ตัวเลือก -d หรือ ––date

หากต้องการรับวันที่เมื่อวานใน Bash ให้ใช้คำสั่งต่อไปนี้:

วันที่ -d '1 วันที่แล้ว'



หรือใช้:

วันที่ --วันที่ '1 วันที่แล้ว'



ที่ 1 วันที่ผ่านมา สตริงยังสามารถแทนที่ด้วย -1 วัน

วันที่ --วันที่ '-1 วัน'



คุณยังสามารถจัดรูปแบบวันที่โดยใช้อักขระรูปแบบได้อีกด้วย

วันที่ --วันที่ '1 วันที่แล้ว' + '%Y/%m/%d'



อีกวิธีหนึ่งในการรับวันที่ของเมื่อวานใน bash คือการใช้สตริงเมื่อวานกับ -d หรือ - -วันที่ ตัวเลือก.

วันที่ --วันที่ 'เมื่อวาน'



หากต้องการจัดรูปแบบเป็น YYYY/MM/DD ให้ใช้คำสั่งต่อไปนี้:

วันที่ --วันที่ 'เมื่อวาน' + '%Y/%m/%d'


อะไรคือข้อจำกัดของตัวเลือก -d หรือ –date ใน Linux

ตัวเลือก -d หรือ – –date จะให้วันที่เมื่อวานแก่คุณ แต่ตัวเลือกเหล่านี้มีข้อจำกัดบางประการ ตัวเลือกเหล่านี้จะไม่พิจารณา เวลาออมแสง หรือ เวลาออมแสง ในขณะที่ให้ผลลัพธ์และขึ้นอยู่กับเขตเวลาปัจจุบัน คำสั่ง date จะลบ 24 ชั่วโมงออกจากวันที่และเวลาปัจจุบันเพื่อแสดงเอาต์พุตของเมื่อวาน ซึ่งช่วยลดการพิจารณา DST

แนวทางหนึ่งในการหลีกเลี่ยงสถานการณ์ดังกล่าวคือการใช้ เวลาสากลเชิงพิกัด (-u flag) เวลา ซึ่งไม่ต้องอาศัยเขตเวลาท้องถิ่นในการคำนวณวันที่ของเมื่อวาน และให้เอาต์พุตตามเขตเวลาที่กำหนด ใช้แฟล็ก -u พร้อมกับคำสั่ง date:

วันที่ -ใน --วันที่ 'เมื่อวาน' + '%Y-%m-%d'


2. การค้นหาวันที่ของเมื่อวานโดยใช้ EPOCHSECONDS

วันที่ของเมื่อวานยังสามารถพบได้โดยใช้ EPOCHSECONDS หากต้องการค้นหาวันที่ของเมื่อวานให้รันคำสั่งต่อไปนี้:

พิมพ์ฉ -ใน เมื่อวาน '%(%Y/%m/%d)T' $ ( ( ยุควินาที – 86400 ) )


หากต้องการพิมพ์วันที่ของเมื่อวาน:

เสียงสะท้อน $เมื่อวาน



คำสั่งนี้จะคำนวณวันที่ของวันที่ก่อนหน้าโดยใช้ EPOCHSECONDS และกำหนดให้กับ เมื่อวาน ตัวแปรเข้า ปปปป-ดด-วว รูปแบบ. EPOCHSECONDS คือจำนวนวินาทีตั้งแต่วันที่ 1 มกราคม 1970 โดยที่ 86400 หมายถึงจำนวนวินาทีต่อวัน

วิธีค้นหาวันที่เมื่อวานใน Bash บน macOS

แม้ว่า macOS จะมาพร้อมกับ Zsh เป็นเชลล์เริ่มต้น แต่หลายคนยังคงชอบ Bash ซึ่งใช้กันอย่างแพร่หลาย คำสั่ง date ใน macOS ไม่รองรับ เมื่อวาน ไวยากรณ์ ดังนั้นขั้นตอนในการรับวันที่เมื่อวานบน macOS จึงแตกต่างออกไปเล็กน้อย

ใน macOS ไฟล์ วันที่ คำสั่งใช้ค้นหาวันที่เมื่อวาน

วันที่ -v-1d



หากต้องการรับวันที่ของเมื่อวานในรูปแบบเฉพาะบน macOS ให้ใช้:

วันที่ -v-1d + '%Y/%m/%d'



แฟล็ก -v ใช้เพื่อปรับเวลาและวันที่ เช่น หากคุณต้องการวันที่ของวันก่อนหน้า ให้ใช้ 1 วัน ด้วยเครื่องหมายลบ ( ) เข้าสู่ระบบ. หากต้องการรับวันที่สำหรับวันถัดไป เพียงใช้เครื่องหมายบวก ( + ) เข้าสู่ระบบ. โดยที่ d หมายถึงวันตั้งแต่ 1-31 สำหรับรายละเอียดเพิ่มเติม ให้รันคำสั่งต่อไปนี้ในเทอร์มินัล bash ของ macOS:

ผู้ชาย วันที่


บันทึก: แฟล็ก -v มีเฉพาะสำหรับ macOS และอาจใช้ไม่ได้กับระบบปฏิบัติการอื่น เช่น Linux

บทสรุป

คุณต้องทำงานกับวันที่และเวลาเพื่อจัดกำหนดการงาน สร้างรายงาน และสำรองข้อมูลในฐานะผู้ดูแลระบบ เพื่อที่จะรับวันที่ของเมื่อวานในระบบ Linux คุณสามารถใช้คำสั่ง date ได้ -d หรือ - -วันที่ ธง ใน macOS จะใช้คำสั่ง date เช่นกัน แต่มี a -ใน ธงและจำนวนเต็มบวกหรือลบด้วย อักขระ.