Secara otomatis menghapus file lama dari tempat sampah sambil menyimpan yang baru?

25

Saya ingin add-on explorer yang akan menghapus file lama dari tempat sampah daur ulang setelah jangka waktu tertentu.

Misalnya, saya ingin menetapkan batas waktu hingga 30 hari. Ketika saya menghapus file di Windows, perangkat lunak akan menyimpan catatan waktu penghapusannya. Setiap hari, itu akan memindai file yang dihapus yang usianya telah mencapai 30 hari, dan menghapus jika ada.

Apakah ada perangkat lunak seperti ini?

hkBattousai
sumber
Mungkin, alih-alih mengatur batas waktu, Anda dapat meminta Recycle Bin menghapus item terlama secara otomatis ketika batas ukuran tertentu telah tercapai? Apakah ini dapat diterima?
William Jackson
3
@ WilliamJackson Itu bisa menjadi solusi bagi mereka yang memiliki ruang hard disk terbatas. Tetapi dalam kasus saya, saya ingin memastikan bahwa saya tidak akan menyesal mengosongkan file daur ulang karena kehilangan file yang baru dihapus. Dengan sistem ini, saya hanya akan lupa tentang recycle bin, itu akan mengosongkan dirinya secara otomatis, dan saya akan punya banyak waktu untuk memulihkan file yang dihapus jika saya menyesal setelahnya.
hkBattousai
1
Di dunia gnu / linux, KDE memiliki fitur ini, dan saya pikir itu bagus untuk kegunaan. Mengapa saya harus menyimpan file di tempat sampah lebih dari, katakanlah, 1 bulan? Pendekatan ini tidak mengacaukan tempat sampah Anda dengan file-file lama yang tidak lagi relevan bagi Anda, jadi jauh lebih mudah untuk menemukan dan memulihkan satu atau lebih file ketika Anda membutuhkannya (sangat berguna jika Anda banyak bekerja dengan teks file, yang selalu kecil), dan jangan buang ruang disk dengan file tidak lagi berguna bagi Anda.
gerlos
Ini bukan tambahan penjelajah, dan ini hanya 24 jam, tetapi CCleaner memiliki opsi ini i.imgur.com/JaeJhzU.png
Matthew Lock

Jawaban:

9

RecycleBinEx adalah aplikasi sederhana untuk Windows yang melakukan persis apa yang Anda minta. Lihat: http://www.fcleaner.com/recyclebinex

Di Mac OSX, Hazel melakukan hal yang sama (antara lain): http://www.noodlesoft.com/

KDE Plasma mengirimkan fitur ini sebagai default , jadi jika Anda menjalankan Kubuntu, Arch, Chackra Linux atau distro lainnya dengan KDE, Anda sudah memiliki fitur ini. Lihat saja jendela konfigurasi Dolphin.

Di Ubuntu Unity, Gnome atau lingkungan desktop gnu / linux lainnya yang menyediakan fitur FreeDesktop.org Trash standar, Anda dapat menggunakan AutoTrash untuk melakukan hal ini: http://www.logfish.net/pr/autotrash/
Perilaku serupa dapat dilakukan juga dengan trash-cli , yang dapat digunakan juga untuk mengirim file ke trash can langsung dari baris perintah. Lihat: https://github.com/andreafrancia/trash-cli

Sebagian besar aplikasi email di luar sana juga memiliki fitur ini untuk "tempat sampah" mereka.

Di Android tidak ada "tempat sampah" secara default (ketika Anda menghapusnya, itu hilang selamanya), tetapi Anda dapat menginstal aplikasi seperti Dumpster untuk (entah bagaimana) mendapatkan fitur serupa: http://www.dumpsterapp.mobi/

Seperti yang dikatakan di atas, saya pikir secara otomatis menghapus file lama dari tempat sampah adalah fitur yang bagus untuk membuatnya lebih dapat digunakan , karena ini mengurangi kekacauan (apakah file yang Anda sampah 3 bulan lalu masih relevan untuk Anda? Dan SEMUA revisi lama yang sama file?) dan membuat lebih mudah untuk menemukan apa yang ingin Anda pulihkan (ini adalah alasan untuk memiliki "tong sampah" di komputer kami, setelah semua), masih aman.

Ini bahkan lebih berguna jika Anda sering bekerja dengan file teks (kode atau prosa), yang sebagian besar waktunya kecil dan tidak membutuhkan banyak ruang (jadi mungkin tidak pernah mencapai kuota tempat sampah Anda). Dengan cara ini Anda bahkan tidak perlu "mengosongkan tempat sampah Anda" secara berkala. Anda hanya tahu bahwa Anda memiliki waktu untuk memulihkan file "sampah" Anda jika perlu.

Melihat sebagian besar layanan cloud di luar sana (Dropbox, Google Drive, Simplenote, ...), kebanyakan dari mereka tampaknya memiliki kebijakan serupa untuk file yang dihapus. Saya benar-benar berpikir itu hal yang benar untuk dilakukan dengan file Anda, dan mereka sepertinya berpikir begitu.

gerlos
sumber
1
Saya telah menggunakan perangkat lunak ini sejak Anda memposting jawaban Anda di sini. Cukup bagus. Saya puas dengan itu. Saya merekomendasikannya. Ini persis apa yang saya cari. Terima kasih atas jawaban anda.
hkBattousai
1
Yang bagus ditambahkan ke daftar itu adalah trash-cli, alat sampah baris perintah mirip dengan autotrash, yang memungkinkan Anda mengirim file ke sampah bahkan dari baris perintah. Lihat webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html dan github.com/andreafrancia/trash-cli
gerlos
Akankah RecycleBinEx bekerja di Windows 10? Tampaknya ini bukan fitur default yang ditawarkan di Windows 10.
still_dreaming_1
1
@ still_dreaming_1 terakhir kali saya mencoba (beberapa bulan yang lalu), RecycleBinExtampaknya berfungsi pada Windows 10. Tapi saya tidak menggunakannya sebagai sistem utama saya, jadi saya tidak tahu apakah masih berfungsi dengan pembaruan terbaru dari sistem.
gerlos
1
Saya baru saja mencoba RecycleBinEx pada Windows 10. GUI memiliki beberapa perilaku aneh - beberapa file di tempat sampah muncul dengan nama file karakter tunggal - tetapi opsi baris perintah untuk menghapus file yang lebih tua dari X hari tampaknya berfungsi dengan baik. Untuk melihat opsi baris perintah, ketik "RecycleBinEx.exe /?" di baris perintah.
Aaron
17

Saya tidak tahu adanya add-on Explorer, tetapi seperti kebanyakan hal di Windows, ini bisa dilakukan dengan PowerShell:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
    $Path = $Drive.Name + ':\$Recycle.Bin'
    Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
    Remove-Item -Recurse
}

Simpan skrip ini sebagai file teks dengan .ps1ekstensi. Anda kemudian dapat menggunakan Penjadwal Tugas untuk menjalankan ini secara berkala.

Namun, pertama-tama, Anda harus mengizinkan eksekusi skrip PowerShell, karena secara default Anda hanya dapat menjalankan perintah yang diketik langsung ke prompt PowerShell. Untuk melakukan ini, buka PowerShell dan ketik perintah berikut:

Set-ExecutionPolicy RemoteSigned

Ketik "y" atau "ya" saat diminta. Lihat Get-Help Set-ExecutionPolicyuntuk informasi lebih lanjut.

Sekarang buka Penjadwal Tugas dan buat tugas baru dengan parameter berikut:

  1. Di bawah tab "Umum", masukkan nama dan centang opsi "Jalankan dengan hak istimewa tertinggi"
  2. Di bawah tab "Pemicu", tambahkan pemicu baru dan tetapkan tugas untuk dijalankan setiap hari
  3. Di bawah tab "Tindakan", tambahkan tindakan baru:
    • biarkan tipenya sebagai "Mulai program"
    • setel bidang "Program / skrip" ke C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • setel bidang "Tambahkan argumen" ke -NonInteractive -File "C:\path\to\script.ps1"
  4. Di bawah tab "Ketentuan", hapus centang "Mulai tugas hanya jika komputer menggunakan daya AC"

Penjelasan skrip baris demi baris:

ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {

Ini mendapatkan daftar semua drive di komputer dan loop melalui mereka satu per satu. The -PSProvider FileSystemparameter yang diperlukan untuk hanya kembali disk drive, karena PowerShell juga memiliki pseudodrives untuk berbagai hal lain seperti gatal-gatal registri.

Untuk informasi lebih lanjut, lihat Get-Help Get-PSDrivedan tutorial ini tentang pemrosesan loop di PowerShell .

$Path = $Drive.Name + ':\$Recycle.Bin'

Ini membangun jalur ke folder Keranjang Sampah di drive saat ini. Perhatikan penggunaan tanda kutip tunggal di sekitar bagian kedua, untuk mencegah PowerShell dari menafsirkan $Recyclesebagai variabel.

Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |

Ini mengembalikan semua file dan subfolder di bawah jalur yang diberikan (yang kami buat dengan perintah sebelumnya). The -Forceparameter yang dibutuhkan untuk masuk ke folder tersembunyi dan sistem, dan -Recurseparameter membuat perintah rekursif, yaitu. loop melalui semua subdirektori juga. -ErrorActionadalah parameter standar untuk sebagian besar perintah PowerShell, dan nilainya SilentlyContinuemembuat perintah mengabaikan kesalahan. Tujuannya adalah untuk mencegah kesalahan pada drive yang telah dikonfigurasi untuk segera menghapus file. The |simbol di pipa akhir sangat hasilnya ke perintah berikutnya; Saya membaginya menjadi beberapa baris untuk keterbacaan yang lebih baik.

Untuk informasi lebih lanjut, lihat Get-Help Get-ChildItem.

Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |

Ini cukup menyaring hasil dari perintah sebelumnya dan hanya mengembalikan yang lebih dari 30 hari. $_mengacu pada objek yang sedang diproses, dan LastWriteTimeproperti dalam hal ini mengacu pada tanggal dan waktu file itu dihapus. Get-Datemengembalikan tanggal saat ini.

Untuk informasi lebih lanjut, lihat Get-Help Where-Objectdan Get-Help Get-Date.

Remove-Item -Recurse

Ini hanya menghapus item yang diteruskan oleh perintah sebelumnya. The -Recurseparameter secara otomatis menghapus isi subfolder non-kosong; tanpa itu, Anda akan diminta untuk folder seperti itu.

Untuk informasi lebih lanjut, lihat Get-Help Remove-Item.

Indrek
sumber
Saya mengaturnya. Terima kasih banyak untuk menjelaskannya dengan sangat rinci.
hkBattousai
3
Atau untuk global menetapkan kebijakan eksekusi, Anda dapat membuat baris perintah yang set untuk proses: powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1.
jpmc26
Keranjang Sampah dalam tampilan detail penjelajah memiliki kolom khusus: "Tanggal Dihapus", saya bertanya-tanya bagaimana kita bisa memfilter menggunakan itu? LastWriteTime bukanlah hal yang sama dengan cara apa pun.
Ciantic
Bicara terlalu cepat, temukan ini: baldwin-ps.blogspot.fi/2013/07/... ia memiliki "Tanggal Dihapus" juga di dalamnya.
Ciantic
4

Windows Recycle Bin secara otomatis menghapus file yang lebih lama ketika mencapai ukuran maksimum: Apa yang terjadi ketika Recycle Bin menggunakan ruang yang dialokasikan?

Anda dapat mengontrol ini dari properti Recylce Bin

masukkan deskripsi gambar di sini

Matthew Lock
sumber
1
Jawaban ini tidak menjawab pertanyaan, karena mekanisme ini tidak memperhitungkan usia spesifik file; itu hanya menghapus file tertua dari usia sewenang-wenang untuk mempertahankan volume data yang telah ditetapkan.
Jonathan J