Bagaimana saya bisa menggunakan perintah untuk menghapus semua file di Unduhan yang tanggalnya ditambahkan lebih dari 1 tahun?


12

Saya menggunakan Mac. Bagaimana saya bisa menggunakan perintah untuk menghapus semua file ~/Downloadsyang tanggalnya ditambahkan lebih dari 1 tahun?


1
Apakah Anda secara khusus mencari perintah terminal, atau akankah tindakan otomatisasi cukup?
Jerry W.

1
Apa yang Anda maksud dengan "tanggal siapa yang ditambahkan?" Ditambahkan ke apa dan bagaimana?
Allan

1
@ Semua Periksa "Lihat> Atur Menurut" atau kolom yang tersedia di "Opsi Tampilan" di Finder; OS X melacak tanggal item ditambahkan ke folder.
Miles

@Miles - atribut tersebut tidak tersedia di bash kecuali Anda menginstal alat XCode Dev dan OP yang khusus digunakan ~ / Unduhan yang merupakan konvensi bash (atau lebih umum, shell).
Allan

Jawaban:


24

Ini adalah perintah yang relatif sederhana untuk menghapus file dalam direktori yang lebih dari satu tahun. Misalnya, perintah berikut dijalankan di Terminal

find ~/Downloads/ -type f -mtime +365 -exec rm {} \;

akan menghapus semua file dalam ~/Downloadsdirektori yang lebih lama dari satu tahun.

  • find adalah perintah yang mencari "barang"

  • -type fmemberitahu menemukan apa yang harus dicari, dalam hal ini file

  • -mtime +365 memberitahu menemukan bahwa waktu yang diubah harus lebih besar dari 365 hari

  • -exec rm {} melewati (mengeksekusi) setiap item "ditemukan" ke perintah rm

Yang ingin saya lakukan adalah mengujinya dengan mengecualikan -exec rm {} \;bagian dan memastikan saya mendapatkan hasil yang benar. Setelah saya yakin, saya hanya menambahkannya untuk menyelesaikan penghapusan.

Satu Peringatan !! File-file ini tidak ditambahkan ke "Sampah." Perintah memotong Sampah dan segera dihapus, jadi gunakan dengan hati-hati.


Cara yang Lebih Aman ...

(Terima kasih kepada pengguna lucasoldaini di komentar di bawah)

Jika Anda ingin memindahkan file Anda ke "Trash", cukup ganti -exec rm {} \;porsinya-exec mv {} ~/.Trash \;

Mereka akan tetap di Sampah Anda sampai nanti Anda mengosongkannya.

Anda dapat memperoleh informasi lebih lanjut tentang setiap perintah dengan melihat halaman manual mereka:


6
Alih-alih menggunakan rm, Anda bisa memindahkan file ke ~/.Trashuntuk mencegah mereka agar segera dihapus.
lucasoldaini

2
Perhatikan bahwa tanggal yang diubah (tempat jawaban ini beroperasi) berbeda dari tanggal yang ditambahkan . Selanjutnya, Safari akan menetapkan tanggal modifikasi dari file yang diunduh ke yang disediakan oleh server jika tersedia, sehingga bahkan file yang diunduh kemarin dapat memiliki tanggal modifikasi lebih dari satu tahun.
Miles

2
Jika Anda memiliki homebrew: brew instal trash dan alih-alih rm gunakan perintah trash mulai sekarang.
Kyslik

Saya memperbarui jawaban saya berdasarkan saran dari @lucasoldaini. Saya lebih suka menggunakan metode bawaan daripada menggunakan homebrew atau MacPorts.
Allan

1
Saya suka solusi Anda lebih dari solusi saya.
Jerry W.

10

Jika Anda ingin menggunakan Automator, Anda dapat membuat tindakan seperti:

Temukan Item Pencari - Cari Unduhan - Semua yang berikut ini benar: -Tanggal Diciptakan tidak dalam 365 hari terakhir.

Dapatkan Item Finder yang Dipilih

Pindahkan Item Finder ke Sampah

Tangkapan Layar Nyaman: Tindakan Automator


7

Alat pilihan saya adalah Hazel , perangkat lunak multiguna dengan biaya rendah yang melakukan banyak hal pada file dan folder saat mereka cocok dengan aturan tertentu yang Anda buat. Aturan ini akan memindahkan file yang tidak ditambahkan tahun lalu dari folder Hämtade filer . Dalam berbeda dari solusi baris perintah di atas karena berjalan setiap hari, jadi itu satu set dan lupakan solusi. Cuplikan layar panel preferensi Hazel


Ini adalah solusi terbaik, karena sebenarnya menggunakan Date Added daripada Date Modified, yang mungkin tidak sama. Sebuah solusi baris perintah bisa mencari kMDItemDateAddeddi mdlstetapi saya sangat merekomendasikan solusi Hazel gantinya.
TJ Luoma
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.