วิธีค้นหาไฟล์ที่สร้างขึ้นในชั่วโมงที่แล้วใน unix
วิธีค้นหาไฟล์ที่สร้างขึ้นในชั่วโมงที่แล้วใน unix
คำตอบ:
หากผบ. ที่ต้องการค้นหาเป็นsrch_dirอย่างใดอย่างหนึ่ง
$ find srch_dir -cmin -60 # change time
หรือ
$ find srch_dir -mmin -60 # modification time
หรือ
$ find srch_dir -amin -60 # access time
แสดงไฟล์ที่สร้างแก้ไขหรือเข้าถึงในชั่วโมงที่แล้ว
การแก้ไข: ctime ใช้สำหรับเปลี่ยนเวลาโหนด (ไม่แน่ใจโปรดแก้ไขด้วย)
ระบบไฟล์ UNIX (โดยทั่วไป) ไม่เก็บเวลาสร้าง แต่จะมีเพียงเวลาเข้าถึง (ข้อมูล) เวลาแก้ไขและเวลาเปลี่ยน (inode)
ที่ถูกกล่าวว่าfindมีเพรดิเคต-atime -mtime -ctime:
$ man 1 หา ... -ctime n หลักจะประเมินตามความเป็นจริงหากเวลาของการเปลี่ยนแปลงล่าสุดของ ข้อมูลสถานะไฟล์ลบออกจากเวลาเริ่มต้น หารด้วย 86400 (โดยทิ้งส่วนที่เหลือ) เป็น n ...
ดังนั้นจึงfind -ctime 0พบทุกสิ่งที่ไอโหนดมีการเปลี่ยนแปลง (เช่นรวมถึงการสร้างไฟล์ แต่ยังนับจำนวนลิงก์และสิทธิ์และการเปลี่ยนแปลงขนาดไฟล์) น้อยกว่าหนึ่งชั่วโมงที่ผ่านมา
-ctimeetc จึงมีหน่วยเป็นวันแทนที่จะเป็นชั่วโมง
                    ลองดูลิงค์นี้แล้วช่วยตัวเอง
รหัสพื้นฐานคือ
#create a temp. file
echo "hi " >  t.tmp
# set the file time to 2 hours ago
touch -t 200405121120  t.tmp 
# then check for files
find /admin//dump -type f  -newer t.tmp -print -exec ls -lt {} \; | pg
touchสร้างไฟล์หากยังไม่มีอยู่
                    find ./ -cTime -1 -type f
หรือ
find ./ -cmin -60 -type f
sudo find / -Bmin 60
จากmanหน้า:
-Bmin n
จริงถ้าความแตกต่างระหว่างเวลาของการสร้างไอโหนดของไฟล์และเวลาที่
findเริ่มต้นปัดขึ้นเป็นนาทีเต็มถัดไปเป็น n นาที
เห็นได้ชัดว่าคุณอาจต้องการตั้งค่าที่แตกต่างกันเล็กน้อย แต่หลักนี้ดูเหมือนจะเป็นทางออกที่ดีที่สุดสำหรับการค้นหาไฟล์ใด ๆ ที่สร้างขึ้นในช่วงNนาทีที่ผ่านมา
find (GNU findutils) 4.6.0ไม่ได้มี-Bคำกริยา
                    ตรวจสอบลิงค์นี้เพื่อดูรายละเอียดเพิ่มเติม
หากต้องการค้นหาไฟล์ที่สร้างขึ้นในหนึ่งชั่วโมงที่ผ่านมาในไดเร็กทอรีปัจจุบันคุณสามารถใช้ -amin
หา. -amin -60- ประเภทฉ
จะพบไฟล์ที่สร้างขึ้นใน 1 ชั่วโมงที่ผ่านมา
findที่ฉันใช้ OP กล่าวว่า Unix และฉันคิดว่านี่คือ Linux เท่านั้น