Anda hampir benar. -mtime 365
akan menjadi semua file yang berumur tepat 365 hari. Anda ingin yang berusia 365 hari atau lebih, yang berarti menambahkan +
sebelum angka seperti ini -mtime +365
.
Anda juga mungkin tertarik pada -maxdepth 1
flag, yang mencegah Anda memindahkan item di sub direktori.
Jika Anda ingin memastikan bahwa Anda hanya memindahkan file, bukan direktori, tambahkan -type f
ke baris.
Pada akhir baris kita tambahkan \;
sehingga find
tahu itu adalah akhir dari perintah yang kita jalankan.
Jadi garisnya harus:
find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec mv "{}" /destination/directory/ \;
Agar aman, mulailah dengan hanya melakukan ls -l bukannya mv - dengan begitu Anda dapat memeriksa terlebih dahulu apakah Anda mendapatkan file yang Anda inginkan, sebelum menjalankannya kembali dengan mv, seperti ini:
find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec ls -l {} \;
Jenny D kata Reinstate Monica
sumber
mtime
ini adalah waktu Modifikasi (yang terdengar seperti apa yang Anda inginkan - sebagian besar waktu itu). Jika log ini sering dibaca / dirujuk, Anda mungkin ingin menggunakan-atime
(waktu akses terakhir).exec
pernyataan. Lihat halaman manual untukfind
.Hati-hati saat menggunakan solusi di atas, saya menggunakannya dan akhirnya memindahkan semua file di semua subfolder !!!!
Perintah ini memindahkan semua file di direktori / sumber dan semua subfolder di bawah direktori sumber:
Sebagai gantinya, gunakan opsi -maxdepth 1 untuk hanya file di / sourcedirectory
sumber
-type f
. Apakah yang Anda maksudkan ini bukan berarti bahwa subfolder dipindahkan tetapi kontennya tetap berada di dalam subfolder alih-alih dipindahkan dari mereka atau ...?Anda dapat menggunakan perintah ini, dan menentukan bahwa Anda hanya menemukan file, bukan direktori, dan file lebih lama dari satu tahun
sumber
rm
? Perintah Anda menghapus kedua file log dan mungkin direktori tujuan.Anda dapat menggunakan perintah di bawah ini dengan atime jika file sering diakses
sumber
Benar akan menghapus akhir garis miring dari
/sourcedirectory/
sumber
find: missing argument
kesalahan, namun saya setuju bahwa menghapus garis miring dari/sourcedirectory
sudah benar.