ฉันจะเขียนหา expression ได้อย่างไร (atime = ctime) (access time = change time)


1

ฉันต้องการหาชุดของไฟล์ที่จะลบที่ไม่ได้รับการเข้าถึงนับตั้งแต่ inode เปลี่ยน ไฟล์ที่กิจกรรมล่าสุดเกิดขึ้นเมื่อพวกเขาถูกย้ายไปยังไดเรกทอรีที่พวกเขาอยู่ในปัจจุบัน

ที่นี่ฉันพยายามที่จะผ่านแต่ละไฟล์เป็นไฟล์อ้างอิงสำหรับการค้นหาทดสอบ

man find 
...
-newerXY reference
          Compares  the timestamp of the current file with reference.   
...    

นี่คือสิ่งที่ฉันได้ลองมาแล้ว แต่มันไม่ทำงาน

find . -type f | xargs -I{} find -newerac {} -printf "%p\tinode: %i\naccess: \t%a\nchange: \t%c\n"

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการกับเมล็ดพันธุ์ใหม่ superuser.com/a/464737/67952
nelaaro

คำตอบ:


3

นี่จะให้ไฟล์ทั้งหมดที่แตกต่างกันระหว่าง atime และ ctime

find . -type f -printf "%p\n%a\n%c\n\n" | \
  awk 'BEGIN {FS="\n"; RS=""}; $2!=$3 {print $1}'

ดูตัวอย่างนี้:

ls -1
data
data1
ss.08-02-2012-01.22.16-PM.png
ss.09-02-2012-13.42.06-PM.png
test.awk
test.py
test.sh

ตอนนี้ดูที่ไฟล์สถิติ:

find . -type f -printf "%p\n%a\n%c\n\n"
./test.sh
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./data1
Tue Aug 21 15:13:13.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./test.awk
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./data
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./test.py
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./ss.09-02-2012-13.42.06-PM.png
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

./ss.08-02-2012-01.22.16-PM.png
Tue Aug 21 15:12:29.0000000000 2012
Tue Aug 21 15:12:29.0000000000 2012

ฉันแยกแต่ละฟิลด์ด้วยการขึ้นบรรทัดใหม่และแต่ละระเบียนด้วยบรรทัดว่างเพื่อให้ง่ายต่อการประมวลผลด้วย awk: awk 'BEGIN {FS="\n"; RS=""}; $2!=$3 {print $1}'
ที่นี่ตัวคั่นฟิลด์และตัวคั่นเร็กคอร์ดถูกตั้งค่าที่จุดเริ่มต้น (RS แปลสตริงว่างเปล่าเป็นบรรทัดว่าง) นั่นหมายถึง $ 2 และ $ 3 ถือเวลาและเวลา หากพวกเขาแตกต่างกันตามชื่อไฟล์ (ใน $ 1) จะถูกพิมพ์

ผลลัพธ์ที่นี่คือ:

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