วิธีค้นหาไฟล์ล่าสุดหรือไฟล์ที่แก้ไขของวันนี้ใน Linux
ในบทความนี้ เราจะอธิบายเคล็ดลับบรรทัดคำสั่งง่ายๆ สองข้อที่ช่วยให้คุณสามารถแสดงรายการเฉพาะไฟล์ของวันนี้เท่านั้น
ปัญหาทั่วไปประการหนึ่งที่ผู้ใช้ Linux พบในบรรทัดคำสั่งคือการค้นหาไฟล์ที่มีชื่อเฉพาะ ซึ่งจะง่ายกว่ามากเมื่อคุณทราบชื่อไฟล์จริงๆ
อย่างไรก็ตาม สมมติว่าคุณลืมชื่อไฟล์ที่คุณสร้าง (ในโฟลเดอร์ home
ซึ่งมีไฟล์หลายร้อยไฟล์) ในช่วงเวลาก่อนหน้าของวัน แต่คุณจำเป็นต้องใช้อย่างเร่งด่วน
ด้านล่างนี้เป็นวิธีต่างๆ ในการแสดงรายการเฉพาะไฟล์ทั้งหมดที่คุณสร้างหรือแก้ไข (ทั้งทางตรงและทางอ้อม) ในปัจจุบัน
1. เมื่อใช้คำสั่ง ls คุณสามารถแสดงรายการไฟล์ของวันนี้ในโฟลเดอร์หลักของคุณได้ดังต่อไปนี้ โดยที่:
-a
– แสดงรายการไฟล์ทั้งหมดรวมทั้งไฟล์ที่ซ่อนไว้-l
– เปิดใช้งานรูปแบบรายการแบบยาว--time-style=FORMAT
– แสดงเวลาในรูปแบบที่ระบุ+%D
– แสดง/ใช้วันที่ในรูปแบบ %m/%d/%y
ls -al --time-style=+%D | grep 'date +%D'
นอกจากนี้ คุณสามารถจัดเรียงรายการผลลัพธ์ตามตัวอักษรโดยรวมแฟล็ก -X
:
ls -alX --time-style=+%D | grep 'date +%D'
คุณยังสามารถแสดงรายการตามขนาด (ใหญ่ที่สุดก่อน) โดยใช้แฟล็ก -S
:
ls -alS --time-style=+%D | grep 'date +%D'
2. ขอย้ำอีกครั้งว่า คุณสามารถใช้คำสั่ง find ซึ่งมีความยืดหยุ่นมากกว่าและมีตัวเลือกมากมายมากกว่า ls เพื่อจุดประสงค์เดียวกันกับด้านล่างนี้
- ระดับ
-maxdeep
ใช้เพื่อระบุระดับ (ในแง่ของไดเร็กทอรีย่อย) ใต้จุดเริ่มต้น (ไดเร็กทอรีปัจจุบันในกรณีนี้) ที่จะดำเนินการค้นหา -newerXY
ใช้งานได้หาก การประทับเวลา X ของไฟล์ที่เป็นปัญหาใหม่กว่า การประทับเวลา Y ของการอ้างอิงไฟล์ X และ Y เป็นตัวแทนของตัวอักษรใด ๆ ด้านล่าง:- a – เวลาในการเข้าถึงการอ้างอิงไฟล์
- B – เวลาเกิดของการอ้างอิงไฟล์
- c - เวลาเปลี่ยนสถานะไอโหนดของการอ้างอิง
- m – เวลาแก้ไขการอ้างอิงไฟล์
- เสื้อ – การอ้างอิงถูกตีความโดยตรงเป็นเวลา
ซึ่งหมายความว่า เฉพาะไฟล์ที่แก้ไขเมื่อ 2016-12-06 เท่านั้นที่จะได้รับการพิจารณา:
find . -maxdepth 1 -newermt "2016-12-06"
ข้อสำคัญ: ใช้ รูปแบบวันที่ ที่ถูกต้องเป็นข้อมูลอ้างอิงในคำสั่ง find ด้านบน เมื่อคุณใช้รูปแบบที่ไม่ถูกต้อง คุณจะได้รับข้อผิดพลาดดังนี้ อันด้านล่าง:
find . -maxdepth 1 -newermt "12-06-2016"
find: I cannot figure out how to interpret '12-06-2016' as a date or time
หรือใช้รูปแบบที่ถูกต้องด้านล่าง:
find . -maxdepth 1 -newermt "12/06/2016"
OR
find . -maxdepth 1 -newermt "12/06/16"
คุณสามารถดูข้อมูลการใช้งานเพิ่มเติมสำหรับคำสั่ง ls
และ find
ได้ในบทความชุดต่อไปนี้เกี่ยวกับเรื่องเดียวกัน
- คำสั่ง Master Linux 'ls' พร้อม 15 ตัวอย่างนี้
- 7 เคล็ดลับ Quirky 'ls' ที่เป็นประโยชน์สำหรับผู้ใช้ Linux
- คำสั่ง Master Linux 'find' พร้อม 35 ตัวอย่างนี้
- วิธีค้นหาชื่อไฟล์หลายชื่อพร้อมนามสกุลใน Linux
ในบทความนี้ เราได้อธิบายเคล็ดลับสำคัญสองข้อในการแสดงรายการเฉพาะไฟล์ของวันนี้ด้วยความช่วยเหลือของ ls และคำสั่งค้นหา ใช้แบบฟอร์มคำติชมด้านล่างเพื่อส่งคำถามหรือความคิดเห็นเกี่ยวกับหัวข้อนี้ถึงเรา คุณสามารถแจ้งให้เราทราบถึงคำสั่งใด ๆ ที่ใช้เพื่อเป้าหมายเดียวกันได้เช่นกัน