คำสั่งที่จะบอกฉันครั้งสุดท้ายที่ไดเรกทอรีหรือไดเรกทอรีย่อยใด ๆ ของมันได้รับการแก้ไข? [ปิด]


3

เราพยายามที่จะคัดค้านเซิร์ฟเวอร์ลินุกซ์โฮมโฟลเดอร์เก่าของเรา เรายังมีคนไม่กี่คนที่ใช้มันอย่างแข็งขัน แผนของเราคือการเปลี่ยนโฟลเดอร์บ้านที่ไม่มีใครใช้ในช่วงหกเดือนที่ผ่านมาเพื่ออ่านอย่างเดียว เรามีลูกค้า Mac และ Windows ที่เข้าถึงการแชร์เหล่านี้ผ่านทาง SMB

ดังนั้นคำถามของฉันคือ: มีคำสั่งที่จะบอกฉันครั้งสุดท้ายที่ไดเรกทอรีหรือไดเรกทอรีย่อยใด ๆ ที่มีการแก้ไข?

หรือ

รายการของไดเรกทอรีหลักที่มีการแก้ไขตั้งแต่วันที่กำหนดหรือไม่

นี่จะบอกฉันว่าผู้ใช้ยังคงใช้งานโฟลเดอร์บ้านอยู่


2
นี่จะเป็นเรื่องเล็กน้อยที่จะนำไปใช้ในฐานะ bash one-liner คุณลองทำสิ่งใดด้วยตัวเอง?
EEAA

2
หยุดการแชร์ SMB รอใครโทรมา :)
TheCleaner

ฉันได้ลองแล้ว แต่ก็ไม่แน่ใจในผลลัพธ์ ฉันไม่แน่ใจว่าฉันไว้วางใจผลลัพธ์หรือไม่ หา -type d -mtime -730 | xargs -r ls -lcode
revjamie

ทำไมคุณไม่เชื่อถือผลลัพธ์
EEAA

อาจจะฟังดูเป็นใบ้ แต่มีบางอย่างเกี่ยวกับเรื่องนี้ดูเหมือนจะไม่ถูกฮ่าฮ่า ตัดสินจากความคิดเห็นของคุณฉันกำลังสมมติว่านี่เป็นวิธีที่จะทำ
revjamie

คำตอบ:


3

ปัญหาที่คุณอาจพบคือการแก้ไขไฟล์ในไดเรกทอรีไม่จำเป็นต้องเปลี่ยนการประทับเวลาของไดเรกทอรี นี่คือตัวอย่าง:

paulgear@localhost:~/tmp$ echo test1 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:29 test1
paulgear@localhost:~/tmp$ date
Wed Jan 15 09:30:07 EST 2014
paulgear@localhost:~/tmp$ echo test2 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:30 test1

สังเกตว่าการแทนที่เนื้อหาทั้งหมดของ test1 ไม่ได้อัปเดตการประทับเวลาไดเรกทอรี ดังนั้นคำสั่ง find ของคุณอาจจะกำลังมองหาไฟล์เช่นเดียวกับไดเรกทอรีบางอย่างเช่นนี้:

find . -mtime +180 -print0 | xargs -0 chmod a-w

หรือคุณอาจต้องการกำหนดเกณฑ์เวลาให้แตกต่างกันสำหรับไฟล์และไดเรกทอรี:

find . -type d -mtime +120 -print0 | xargs -0 chmod a-w
find . -type f -mtime +180 -print0 | xargs -0 chmod a-w

สำหรับแอปพลิเคชั่นส่วนใหญ่ (ส่วนใหญ่) ที่ใช้ไฟล์ SMB จะใช้ร่วมกันไม่ได้เพราะจะใช้เขียนเนื้อหาลงในไฟล์ชั่วคราวในไดเรกทอรีเดียวกันจากนั้นลบไฟล์ต้นฉบับจากนั้นเปลี่ยนชื่อไฟล์ชั่วคราวเป็นชื่อดั้งเดิม แต่แอปพลิเคชัน "ฐานข้อมูล" เช่น Access จะไม่ทำสิ่งนี้

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