GNU/Linux >> Belajar Linux >  >> Linux

Temukan direktori dengan semua file di dalamnya lebih tua dari X?

Ini mungkin dilakukan tanpa membuat file menggunakan substitusi proses atau semacamnya, tetapi inilah solusi cepat dan kotornya:

find . -type f -mtime +30 -printf '%h\n' | sort | uniq > old.txt
find . -type f -mtime -30 -printf '%h\n' | sort | uniq > new.txt
grep -vf new.txt old.txt

Perintah pertama menampilkan jalur setiap file yang dimodifikasi lebih dari 30 hari yang lalu (dalam -printf find -- setidaknya dengan temuan GNU di sistem saya -- %h mencetak seluruh jalur kecuali untuk nama file yang sebenarnya), lalu mengurutkannya dan menghilangkan duplikat apa pun, dan memasukkan semuanya ke dalam file bernama old.txt .

Perintah kedua melakukan hal yang sama tetapi dengan setiap file dimodifikasi kurang dari 30 hari yang lalu, dan memasukkannya ke dalam file lain, new.txt .

Baris grep mencetak setiap baris dari old.txt yang tidak muncul di new.txt -- jadi ini akan memberi Anda daftar direktori yang hanya file yang terakhir diubah lebih dari 30 hari yang lalu.

Ini semua menggunakan utilitas versi GNU. Saya tidak tahu apakah sintaks cocok dengan versi BSD, dll.


Akhirnya menemukan satu kalimat ajaib:

for dir in `find . -type d -mtime +30`; do test `find $dir -type f -mtime -30 -print -quit` || echo $dir; done

Ini mencetak direktori apa pun yang memiliki waktu modifikasi lebih dari 30 hari dan tidak ada file yang diubah dalam 30 hari terakhir.


Linux
  1. Hapus Semua File/direktori Kecuali Satu File?

  2. Hapus Semua File Dan Folder Di /tmp Lebih Lama Dari Sehari?

  3. Cara Menemukan File dengan Perintah fd di Linux

  1. Temukan file dan direktori di Linux dengan perintah find

  2. Temukan semua file dengan nama yang mengandung string

  3. Skrip Bash untuk menghapus file yang lebih lama dari x hari dengan subdirektori

  1. Cara Zip File dan Direktori di Linux (dengan Contoh)

  2. Hapus Semua File Kecuali Di Subdirektori Tertentu Dengan Temukan?

  3. Bagaimana Mengganti Satu Char Dengan Yang Lain Di Semua Nama File Direktori Saat Ini?