วิธีค้นหาไฟล์ที่สร้างขึ้นในชั่วโมงที่แล้วใน 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
พบทุกสิ่งที่ไอโหนดมีการเปลี่ยนแปลง (เช่นรวมถึงการสร้างไฟล์ แต่ยังนับจำนวนลิงก์และสิทธิ์และการเปลี่ยนแปลงขนาดไฟล์) น้อยกว่าหนึ่งชั่วโมงที่ผ่านมา
-ctime
etc จึงมีหน่วยเป็นวันแทนที่จะเป็นชั่วโมง
ลองดูลิงค์นี้แล้วช่วยตัวเอง
รหัสพื้นฐานคือ
#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 เท่านั้น