Apr 3, 2014

Επιλεκτική διαγραφή πρόσφατων αρχείων από το GNOME

Το GNOME στο οποίο βασίζεται και το Ubuntu, ανά πάσα ώρα και στιγμή διατηρεί τη λίστα των πιο πρόσφατων αρχείων (recent files) που έχουν χρησιμοποιηθεί. Αυτή η λίστα είναι διαθέσιμη είτε στον File Manager (nautilus) είτε σε τρίτες εφαρμογές όπως για παράδειγμα ο φοβερός keystroke launcher kupfer ώστε με δυο clicks να έχουμε στην άμεση διάθεσή μας τα πιο πρόσφατα αρχεία μας. Δεν λείπουν πάντως οι φορές που μερικά αρχεία δεν θέλουμε να τα "θυμάται" το GNOME αλλά προτιμούμε να μην εμφανίζονται στην σχετική λίστα.

Για να το καταφέρουμε αυτό θα χρειαστούμε μια μικρή επεξεργασία XML αρχείων από το shell του Linux. Πρώτα από όλα, τα πρόσφατα αρχεία καταγράφονται στην τοποθεσία $HOME/.local/share/recently-used.xbel που είναι όντως ένα XML αρχείο. Εκεί για κάθε έγγραφο καταγράφεται η τοποθεσία του σε ένα attribute ονόματι href. Επειδή δεν μπορούμε να απαγορεύσουμε την καταγραφή του συστήματος για τα πρόσφατα αρχεία, το μόνο που μπορούμε να κάνουμε είναι μια εκκαθάριση (clean) τους, σύμφωνα με κάποια κριτήρια, κατά τακτά χρονικά διαστήματα. Είχαμε παλαιότερα αναφερθεί στο φανταστικό πρόγραμμα xmlstarlet που βοηθάει στην επεξεργασία XML από command-line. Έτσι και τώρα, προκειμένου να σβήσουμε (delete) τις εγγραφές των πρόσφατων αρχείων που ανήκουν σε έναν συγκεκριμένο κατάλογο (πχ private) δεν έχουμε παρά να εκδώσουμε την εντολή:

xmlstarlet ed -N bookmark="http://www.freedesktop.org/standards/desktop-bookmarks" -d "//bookmark[contains(@href, 'private/')]" $HOME/.local/share/recently-used.xbel > $HOME/.local/share/recently-used.xbel.bck ; mv $HOME/.local/share/recently-used.xbel.bck $HOME/.local/share/recently-used.xbel

To παραπάνω script μπορούμε να το εντάξουμε στα auto-startup scripts του Ubuntu.

No comments: