Ubuntu Linux: ค้นหาไฟล์ระหว่างเวลาที่ระบุใช่หรือไม่


17

ฉันพบชื่อ SO แล้ว ใช้ Find / Grep เพื่อค้นหาไฟล์ระหว่างเวลาที่กำหนดของวัน

ขึ้นอยู่กับว่าและ Unix SE เรียกว่า คำสั่ง Grep เพื่อค้นหาไฟล์ที่มีสตริงข้อความและย้ายไฟล์เหล่านั้น ฉันลงเอยด้วย:

find . -type f -mtime -20 | grep -v -e " \(0[012345]\|18\|19\|2[0123]\)" | xargs mv -t daytime/

แต่มันกำลังเคลื่อนย้ายไฟล์ทั้งหมด มันสร้างความแตกต่างที่ฉันใช้กับ Ubuntu หรือไม่?

สิ่งที่ฉันต้องการจะทำคือย้ายไฟล์ทั้งหมดระหว่าง 6.00 น. ถึง 18.00 น. ไปยังไดเรกทอรีอื่น ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชม

คำตอบ:


30

อันที่จริงแล้ว find มีฟังก์ชั่นนี้แล้ว:

find . -newermt "2013-01-01 00:00:00" ! -newermt "2013-01-02 00:00:00"

จาก manpage:

-newerXY reference
       Compares  the timestamp of the current file with reference.  The
       reference argument is normally the name of a file  (and  one  of
       its  timestamps is used for the comparison) but it may also be a
       string describing an absolute time.  X and  Y  are  placeholders
       for other letters, and these letters select which time belonging
       to how reference is used for the comparison.

       a   The access time of the file reference
       B   The birth time of the file reference
       c   The inode status change time of reference
       m   The modification time of the file reference
       t   reference is interpreted directly as a time

       Some combinations are invalid; for example, it is invalid for  X
       to  be t.  Some combinations are not implemented on all systems;
       for example B is not supported on all systems.  If an invalid or
       unsupported  combination  of  XY  is  specified,  a  fatal error
       results.  Time specifications are interpreted as for  the  argu‐
       ment  to the -d option of GNU date.  If you try to use the birth
       time of a reference file, and the birth time  cannot  be  deter‐
       mined,  a  fatal  error  message results.  If you specify a test
       which refers to the birth time of  files  being  examined,  this
       test will fail for any files where the birth time is unknown.

ขอบคุณ @msdl ฉันไม่ได้ตระหนักถึงสิ่งนั้น ดูเหมือนว่าจะดำเนินการเฉพาะในวันที่ปัจจุบันเมื่อให้ "08:00:00" โดยไม่มีวันที่ดังนั้นจึงดูเหมือนว่าต้องการวันละครั้ง แต่นั่นจะทำให้ฉัน - ขอบคุณ!
digitaltoast

ดังนั้นฉันจะรับไฟล์ที่พิมพ์ใน terminal ได้อย่างไร ฉันลองคำสั่งนี้ แต่มันไม่ได้พิมพ์อะไรให้ฉันเลย!
Kulasangar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.