GNU/Linux >> Belajar Linux >  >> Linux

Linux:menggunakan find untuk menemukan file yang lebih lama dari <tanggal>

Solusi 1:

Tidak, Anda dapat menggunakan string tanggal/waktu.

Dari man find :

-referensi XY yang lebih baru
Membandingkan stempel waktu file saat ini dengan referensi. Argumen referensi biasanya adalah nama file (dan salah satu stempel waktunya digunakan untuk perbandingan) tetapi bisa juga berupa string yang menjelaskan waktu absolut. X dan Y adalah placeholder untuk huruf lain, dan huruf-huruf ini memilih waktu yang termasuk dalam referensi yang digunakan untuk perbandingan.

          a   The access time of the file reference
          B   The birth time of the file reference
          c   The inode status change time of reference
          m   The modification time of the file reference
          t   reference is interpreted directly as a time

Contoh:

find -newermt "mar 03, 2010" -ls
find -newermt yesterday -ls
find -newermt "mar 03, 2010 09:00" -not -newermt "mar 11, 2010" -ls

Solusi 2:

Tidak terkait langsung dengan pertanyaan, tetapi mungkin menarik bagi beberapa orang yang tersandung di sini.

temukan perintah tidak secara langsung mendukung parameter -older untuk menemukan file yang lebih lama dari tanggal yang diperlukan, tetapi Anda dapat menggunakan pernyataan negasi (menggunakan contoh jawaban yang diterima):

touch -t 201003160120 some_file
find . ! -newer some_file

akan mengembalikan file lama dari tanggal yang diberikan.

Solusi 3:

Jika Anda hanya memiliki '-file baru' maka Anda dapat menggunakan solusi ini:

# create 'some_file' having a creation date of 16 Mar 2010:
touch -t 201003160120 some_file

# find all files created after this date
find . -newer some_file

sentuhan pria:

  -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time

Dengan asumsi sentuhan Anda memiliki opsi ini (milik saya adalah sentuhan 5.97).

Solusi 4:

find <dir> -mtime -20

perintah find ini akan menemukan file yang dimodifikasi dalam 20 hari terakhir.

  • mtime -> dimodifikasi (atime=diakses, ctime=dibuat)
  • -20 -> berusia kurang dari 20 hari (20 tepat 20 hari, +20 lebih dari 20 hari)

Anda dapat menambahkan batasan tambahan seperti:

find <dir> -mtime -20 -name "*.txt"

sama seperti sebelumnya, tetapi hanya menemukan file yang diakhiri dengan '.txt'.

Solusi 5:

Sebagai tambahan - Anda bahkan dapat menggunakan dua argumen baru untuk menelusuri dalam interval waktu:

find ! -newermt "apr 01 2007" -newermt "mar 01 2007" -ls

untuk menemukan semua file dari maret 2007.


Linux
  1. Cara Menemukan File Yang Lebih Besar Atau Lebih Kecil Dari Ukuran X Di Linux

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

  3. hitung total ruang disk yang digunakan oleh file yang lebih lama dari 180 hari menggunakan find

  1. Menggunakan sed untuk menemukan dan mengganti file teks di Linux

  2. Menyalin file berdasarkan tanggal modifikasi di Linux

  3. Cara membuat tar untuk file yang lebih lama dari 7 hari menggunakan skrip shell linux

  1. Menggunakan perintah find Linux – Penggunaan dengan contoh

  2. Linux – Mendapatkan File Untuk Tanggal Saat Ini Di Linux?

  3. Gunakan Temukan dan Temukan untuk mencari file di Linux