Yenilerini tutarken eski dosyaları geri dönüşüm kutusundan otomatik olarak silme?


25

Bir süre sonra geri dönüşüm kutusundan eski dosyaları silecek bir gezgin eklenti istiyorum.

Örneğin, zaman sınırını 30 güne ayarlamak istiyorum. Windows'ta bir dosyayı sildiğimde, yazılım silme zamanının bir kaydını tutacaktır. Her gün, yaşı 30 güne ulaşan silinmiş dosyayı tarar ve varsa silinir.

Bunun gibi bir yazılım var mı?


Belki, bir zaman sınırı belirlemek yerine, Geri Dönüşüm Kutusu'nun belirli bir boyut sınırına ulaşıldığında en eski öğeleri otomatik olarak silmesini sağlayabilirsiniz. Bu kabul edilebilir mi?
William Jackson

3
@WilliamJackson Bu sabit disk alanı sınırlı olanlar için bir çözüm olabilir. Ancak benim durumumda, yakın zamanda silinen bir dosyanın kaybedilmesi nedeniyle geri dönüşüm dosyasını boşaltmaktan pişman olmayacağımdan emin olmak istiyorum. Bu sistemde geri dönüşüm kutusunu unuturum, otomatik olarak kendini boşaltır ve daha sonra pişman olursam silinen bir dosyayı kurtarmak için çok zamanım olur.
hkBattousai

1
Gnu / Linux dünyasında, KDE bu özelliğe sahiptir ve bence kullanılabilirlik için harika. Neden çöp tenekesinde 1 aydan daha fazla bir süre dosya tutmalıyım? Bu yaklaşım çöp kutunuzu artık sizinle alakalı olmayan eski dosyalarla karıştırmaz, bu nedenle ihtiyacınız olduğunda bir veya daha fazla dosyayı bulmak ve kurtarmak çok daha kolaydır (eğer çok zekâ metinler için işe yararsanız çok kullanışlıdır) her zaman küçük olan dosyalar) ve sizin için daha fazla işe yaramayacak dosyaları olan disk alanını boşa harcamayın.
gerlos

Bu eklenti bir kaşif değil ve bu sadece 24 saat kaldı, ama CCleaner bu seçenek vardır i.imgur.com/JaeJhzU.png
Matthew Kilit

Yanıtlar:


9

RecycleBinEx , tam olarak istediğinizi yapan, Windows için basit bir uygulamadır. Bkz .: http://www.fcleaner.com/recyclebinex

Mac OSX'te Hazel aynı şeyi yapar (diğerleri arasında): http://www.noodlesoft.com/

KDE Plazma bu özelliği varsayılan olarak gönderir, bu nedenle Kubuntu, Arch, Chackra Linux veya KDE ile ilgili başka herhangi bir dağıtımı kullanıyorsanız, zaten bu özelliğe sahipsiniz. Sadece Dolphin konfigürasyon penceresine bakın.

Ubuntu Unity, Gnome veya standart bir FreeDesktop.org Trash özelliği sağlayan başka bir gnu / linux masaüstü ortamında , bunu yapmak için AutoTrash'i kullanabilirsiniz : http://www.logfish.net/pr/autotrash/
Benzer davranışlar da gerçekleştirilebilir. ile çöp-cli , o çöp kutusuna dosya göndermek de kullanılabilir can sağ komut satırından. Bakınız: https://github.com/andreafrancia/trash-cli

Dışarıdaki çoğu e-posta uygulaması da "çöp tenekesi" için bu özelliğe sahiptir.

Android'de varsayılan olarak herhangi bir "çöp kutusu" yoktur (sildiğinizde, sonsuza dek gider), ancak Dumpster gibi uygulamaları yükleyebilirsiniz (bir şekilde) benzer özellikleri almak için : http://www.dumpsterapp.mobi/

Yukarıda da belirtildiği gibi, eski dosyaları çöp kutusundan otomatik olarak kaldırmanın, bunu yapmak için harika bir özellik olduğunu düşünüyorum. daha kullanışlı , çünkü karışıklığı azaltır (3 ay önce çöpe attığınız dosyalar hala sizinle alakalı mıdır? dosya?) ve kurtarmak istediklerinizi bulmayı kolaylaştırır (sonuçta bilgisayarlarımızda "çöp tenekesine" sahip olmanın nedeni budur) hala güvendedir.

Metin dosyalarıyla (kod veya nesir) çok çalışıyorsanız, çoğu zaman küçük olduğundan ve çok fazla alana ihtiyaç duymazsanız (çöp kotanıza asla ulaşamayabilir) daha da faydalıdır. Bu şekilde periyodik olarak “çöp tenekenizi boşaltabilirsiniz” bile. Gerekirse "çöpe atılmış" dosyalarınızı kurtarmak için bir zaman pencereniz olduğunu bilirsiniz.

Dışarıdaki çoğu bulut hizmetine bakıldığında (Dropbox, Google Drive, Simplenote, ...), çoğu silinmiş dosyalar için benzer bir politika izliyor. Gerçekten, dosyalarınızla yapmanın doğru bir şey olduğunu düşünüyorum ve öyle görünüyor.


1
Cevabınızı buraya gönderdiğinizden beri bu yazılımı kullanıyorum. Bayağı iyi. Bundan memnunum. Bunu öneririm. Bu tam olarak aradığım şeydi. Cevabınız için teşekkürler.
hkBattousai

1
Bu listeye güzel bir eklenti trash-cli, komut satırından çöp autotrashkutusuna bile dosya göndermenize olanak tanıyan bir komut satırı çöp kutusu aracıdır . Bakınız webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html ve github.com/andreafrancia/trash-cli
gerlos

RecycleBinEx Windows 10'da çalışır mı? 10. Windows sunulan varsayılan bir özellik olamaz gibi görünüyor
still_dreaming_1

1
@ still_dreaming_1 son denediğimde (birkaç ay önce), RecycleBinExWindows 10'da çalışıyor gibiydi. Ama bunu ana sistemim olarak kullanmıyorum, bu yüzden hala sistemin son güncellemelerinde çalışıp çalışmadığını söyleyemem.
gerlos

1
Windows 10'da RecycleBinEx'i yeni denedim. GUI'de garip davranışlar var - geri dönüşüm kutusundaki bazı dosyalar tek karakterli dosya adlarıyla görünüyor - ancak X günden daha eski dosyaları kaldırmak için komut satırı seçeneği iyi çalışıyor gibi görünüyor. Komut satırı seçeneklerini görmek için "RecycleBinEx.exe /?" Yazın. komut satırında.
Aaron,

17

Herhangi bir Explorer eklentisi bilmiyorum, ancak Windows'taki çoğu şey gibi, bu PowerShell ile yapılabilir:

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
}

Bu betiği .ps1uzantılı bir metin dosyası olarak kaydedin . Bunu daha sonra düzenli aralıklarla çalıştırmak için Görev Zamanlayıcı'yı kullanabilirsiniz.

Öncelikle, PowerShell scriptlerinin yürütülmesine izin vermeniz gerekir, çünkü varsayılan olarak sadece doğrudan PowerShell istemine yazılan komutları çalıştırabilirsiniz. Bunu yapmak için, PowerShell'i açın ve aşağıdaki komutu yazın:

Set-ExecutionPolicy RemoteSigned

İstendiğinde "y" veya "yes" yazın. Daha Get-Help Set-ExecutionPolicyfazla bilgi için bkz .

Şimdi Görev Zamanlayıcı'yı açın ve aşağıdaki parametrelerle yeni bir görev oluşturun:

  1. "Genel" sekmesinin altına bir ad girin ve "En yüksek yetkilerle çalıştır" seçeneğini işaretleyin.
  2. "Tetikleyiciler" sekmesinin altında yeni bir tetikleyici ekleyin ve görevi günlük olarak çalışacak şekilde ayarlayın
  3. "Eylemler" sekmesi altında yeni bir işlem ekleyin:
    • türü "bir program başlat" olarak bırakın
    • "Program / script" alanını " C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • "Argüman ekle" alanını ayarlayın -NonInteractive -File "C:\path\to\script.ps1"
  4. "Koşullar" sekmesi altındaki "Görevi yalnızca bilgisayar AC gücündeyse başlat" seçeneğinin işaretini kaldırın.

Komut dosyasının satır satır açıklaması:

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

Bu, bilgisayardaki tüm sürücülerin bir listesini alır ve bunlar arasında birer birer döner. -PSProvider FileSystemPowerShell ayrıca kayıt defteri kovanları gibi çeşitli başka şeyler için pseudodrives çünkü parametre, sadece dönüş disk sürücüleri için gereklidir.

Daha fazla bilgi için, bkz. Get-Help Get-PSDriveVe PowerShell'de döngü işlemeyle ilgili bu eğitim .

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

Bu, geçerli sürücüdeki Geri Dönüşüm Kutusu klasörünün yolunu oluşturur. PowerShell'in $Recyclebir değişken olarak yorumlanmasını önlemek için ikinci kısmın etrafında tek tırnakların kullanıldığına dikkat edin .

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

Bu, belirtilen yolun altındaki tüm dosyaları ve alt klasörleri döndürür (önceki komutla oluşturduğumuz dosya). -ForceParametre gizli ve sistem klasörler halinde gitmek için gerekli edilir ve -Recurseparametre, yani komut özyinelemeli yapar. tüm alt dizinlerde de dolaşın. -ErrorActionPowerShell komutlarının çoğu için standart bir parametredir ve değer SilentlyContinue, komutun hataları yoksaymasını sağlar. Bunun amacı, dosyaları derhal silmek üzere yapılandırılmış olan sürücülerin hatalarını önlemektir. En |sondaki sembol, sonuçları bir sonraki komuta yönlendirir; Daha iyi okunabilirlik için onu birkaç satıra ayırdım.

Daha fazla bilgi için bkz Get-Help Get-ChildItem.

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

Bu sadece önceki komutun sonuçlarını filtreler ve sadece 30 günden daha eski olanları verir. $_şu anda işlenmekte olan nesneyi ifade eder ve LastWriteTimebu durumda özellik, dosyanın silindiği tarih ve saati gösterir. Get-Dategeçerli tarihi döndürür.

Daha fazla bilgi için, bkz. Get-Help Where-ObjectVe Get-Help Get-Date.

Remove-Item -Recurse

Bu sadece bir önceki komut tarafından kendisine iletilen öğeleri siler. -RecurseParametre otomatik olarak boş olmayan alt klasörlerin içeriğini siler; onsuz, böyle klasörler için istenir.

Daha fazla bilgi için bkz Get-Help Remove-Item.


Ayarladım. Bu kadar detaylı anlattığın için çok teşekkür ederim.
hkBattousai

3
Alternatif küresel yürütme politikası belirlemek için, bir komut satırı oluşturabilirsiniz süreci için setler it: powershell -ExecutionPolicy RemoteSigned -File .\myscript.ps1.
jpmc26

Gezgin ayrıntıları görünümündeki Geri Dönüşüm Kutusu'nun özel bir sütunu vardır: "Tarih Silindi", bunun yerine nasıl filtre uygulayabiliriz? LastWriteTime hiçbir şekilde aynı şey değildir.
Ciantic

Çok erken konuştum, şunu buldum: baldwin-ps.blogspot.fi/2013/07/… İçinde "Tarihi Silindi" var.
Ciantic

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.