GNU/Linux >> Belajar Linux >  >> Linux

Cara menemukan dan menghapus file yang lebih lama dari periode waktu tertentu di Linux

Mencari berdasarkan stempel waktu file

Sistem file Unix/Linux memiliki tiga jenis stempel waktu pada setiap file. Mereka adalah sebagai berikut:

  1. Waktu akses (-atime) :Stempel waktu saat file terakhir diakses.
  2. Waktu modifikasi (-mtime) :Stempel waktu saat file terakhir diubah.
  3. Ubah waktu (-ctime) :Stempel waktu saat metadata untuk file (seperti izin atau kepemilikan) terakhir diubah.

Cari dan hapus file yang lebih lama dari 7 hari

Mari kita ambil contoh, di mana kita akan menemukan dan menghapus file yang lebih lama dari 7 hari. Kami akan menggunakan opsi “-mtime ” dari perintah find untuk ini.

1. Dapatkan daftar file menggunakan perintah find sebagai berikut:

# find /path_to_directory -mtime +7 -type f -exec ls {}\;

2. Jika nama file dimulai dengan pola tertentu, filter menggunakan pola tersebut sebagai berikut:

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;

3. Setelah memeriksa dan mengonfirmasi output, buka skrip penghapusan (Sangat PENTING), jika tidak, akan ada kehilangan data yang tidak dapat dipulihkan.

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;

4. Jika ini perlu dilakukan pada server jauh melalui cron job dan mencatat nama file dari file yang dihapus, gunakan perintah berikut

# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"

Kesimpulan

-mtime parameter akan mencari file berdasarkan waktu modifikasi; -ctime pencarian berdasarkan waktu perubahan. Waktu penggunaan -atime, -mtime, dan -ctime diukur dalam hari. Perintah find juga mendukung opsi yang diukur dalam hitungan menit. Ini adalah sebagai berikut:

  1. -amin (waktu akses)
  2. -mmin (waktu modifikasi)
  3. -cmin (ubah waktu)

Misalnya, untuk mencetak semua file yang memiliki waktu akses lebih dari tujuh menit, gunakan perintah berikut:

# find . -type f -amin +7 -print

-opsi yang lebih baru

Opsi -newer menentukan file referensi dengan waktu modifikasi yang akan digunakan untuk memilih file yang dimodifikasi lebih baru daripada file referensi.

Temukan semua file yang dimodifikasi lebih baru daripada file file.txt:

# find . -type f -newer file.txt -print


Linux
  1. Bagaimana cara Menghapus semua file yang lebih lama dari X jumlah Hari di Linux?

  2. Linux – Bagaimana Menemukan Tanggal Pembuatan File?

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux

  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. temukan dan hapus file atau folder yang lebih lama dari x hari

  3. Bagaimana Anda menghapus file yang lebih lama dari tanggal tertentu di Linux?

  1. Cara Menemukan dan Mengurutkan File Berdasarkan Tanggal dan Waktu Modifikasi di Linux

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Bagaimana saya bisa secara rekursif menghapus semua file dan direktori kosong di Linux?