Skript: Desktop automatisch aufräumen

Diskutiere Skript: Desktop automatisch aufräumen im Developer Network Forum im Bereich Hardware & Software Forum; Hallo miteinander, ich benutze den Desktop oft als schnelle Ablagemöglichkeit für Dateien, die ich gleich wieder brauche. Mit der Zeit sammeln...
  • Skript: Desktop automatisch aufräumen Beitrag #1
S

Stefan

Guest
Hallo miteinander,

ich benutze den Desktop oft als schnelle Ablagemöglichkeit für Dateien, die ich gleich wieder brauche. Mit der Zeit sammeln sich dort einige Dateien an.

Zum Aufräumen habe ich ein kleines Ruby-Skript geschrieben, welches den Desktop immer schön sauber hält. Zur Nutzung des Scripts muss Ruby (getestet mit 1.8.7) installiert sein. Am besten lässt man das Script automatisch regelmäßig ausführen.

Das Script funktioniert folgendermaßen: Auf dem Desktop einfach ein neues Verzeichnis anlegen (ich habe es »_keep« genannt), in welches das Script sowie eine Kopie aller Programmverknüpfungen/Dateien, welche das Script auf dem Desktop belassen soll, gelegt werden. Dabei kommt es nur auf die richtigen Dateinamen, nicht den Dateiinhalt an.

Das Script prüft dann bei der Ausführung wie alt (= letzte Dateiänderung) die Dateien auf dem Desktop sind, und verschiebt sie sonst chronologisch sortiert ins Archiv-Verzeichnis (standardmäßig »_Archiv« genannt). Das Alter kann konfiguriert werden, standardmäßig bleiben die Dateien 1½ Tage erhalten.

Code:
# _cleanup.rb Stefan 07.06.2012
# reqires ruby 1.8.7
require 'FileUtils'

# configuration
archiv_dir = '_Archiv'
current_dir = Dir.getwd[/[^\/]+$/]
do_not_move = [archiv_dir, current_dir]
age = (24+12)*60 # minutes
verbose = false

# remove unnecessary files
FileUtils.rm_f ['ZbThumbnail.info', 'thumbs.db'].map{|x| "../#{x}"}

# gathering the data
do_not_move += Dir.entries('.') - [__FILE__[/[^\/]+$/]]
desktop = Dir.entries '..'

# do it
(desktop - do_not_move).each do |f|
	if (f_time = File.ctime("../#{f}")) < Time.now - age*60
		FileUtils.mkdir_p "../#{archiv_dir}/#{f_time.strftime '%Y'}/#{f_time.strftime '%Y-%m-%d'}"
		FileUtils.mv("../#{f}", "../#{archiv_dir}/#{f_time.strftime '%Y'}/#{f_time.strftime '%Y-%m-%d'}/#{f}")
		puts "moved #{f} to #{f_time.strftime '%Y-%m-%d'}/#{f}" if verbose
	else
		puts "kept #{f} for #{'%.2f' % ((f_time - Time.now + age*60)/(60*60))} h" if verbose
	end
end

Änderungen dürfen gerne gemacht werden, einfach den neuen Code mit Beschreibung hier als Antwort einfügen. Der Quellcode ist ja recht übersichtlich.
 
  • Skript: Desktop automatisch aufräumen Beitrag #2
K

Kieler

Guest
WOW, so umständlich?
mkdir /home/kieler/Desktop/Kopie
echo mv /home/kieler/Desktop/* "/home/kieler/Desktop/Kopie"/ >> reiniger.sh
sh reiniger.sh

wenn die reiniger einmal da ist, nur noch ausführen:
sh reiniger.sh



okay, er meckert:
mv: Verschieben von „/home/kieler/Desktop/Kopie“ in eigenes Unterverzeichnis („/home/kieler/Desktop/Kopie/Kopie“) nicht möglich
aber das ist ja egal soweit. oder?
 
  • Skript: Desktop automatisch aufräumen Beitrag #3
S

Stefan

Guest
Nein, dein Skript hat bei weitem nicht die Funktionalität welches meines bietet. Das verschiebt einfach unabhängig vom Dateinamen und Alter der Dateien alles weg - genau das will ich nicht.
 
  • Skript: Desktop automatisch aufräumen Beitrag #4
K

Kieler

Guest
mir geht es Primär darum, das ich auf kommando ein sauberen Desktop habe:
show.php
 
Thema:

Skript: Desktop automatisch aufräumen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.178
Beiträge
1.579.169
Mitglieder
55.871
Neuestes Mitglied
Mein-Helmut
Oben