Ich verwende den Desktop aktiv, daher sammeln sich dort schnell Dateien und Ordner an.
Ich brauche eine bashrc
Möglichkeit, den Monat am ersten Tag zu überprüfen, dann ein Verzeichnis mit dem Monatsnamen zu erstellen und es schließlich festzulegen desktop
.
Antwort1
- Sie können einen Cronjob einrichten, der täglich ein Skript für Folgendes ausführt:
man crontab
- im Skript:
- Erstellen Sie einen Ordner für den letzten Monat auf Ihrem Desktop:
man mkdir
undWie weise ich das Datum des letzten Monats (nur Jahr und Monat – 2016-07) als Variable zu? - Sie führen einen aus
find
, der alle Dateien findet, die älter als einen Monat sind. Hier ist ein Beispiel für einen,find
der ältere Dateien löscht (rm
) - Sie müssen ihn anpassen, ummv
ältere Dateien in das erstellte Verzeichnis einzufügen:Dateien löschen, die älter sind als X Tage +
- Erstellen Sie einen Ordner für den letzten Monat auf Ihrem Desktop:
Antwort2
Ändern Sie zunächst die Konfiguration für diesen Monat manuell und führen Sie sie für den nächsten Monat aus.
change_desktop()
{
month=$(date +%B)
last_month=$(date '+%B' --date '1 month ago')
mkdir /home/$USER/Desktop/$month
sed -i "s|Desktop/$last_month|Desktop/$month|" ~/.config/user-dirs.dirs
}
Dadurch wird der Ordner für den aktuellen Monat auf dem Desktop erstellt. Anschließend wird in der Konfiguration nach dem letzten Monat gesucht und dieser in den aktuellen Monat geändert.
Ich weiß nicht, wie man dieses Teil mithilfe von automatisch ausführen kann ~/.bashrc
, aber Sie können einen Cron-Job für den Benutzer einrichten und ihn jeden Monat ausführen lassen. Fügen Sie einfach diesen Codeausschnitt zu einer Datei namens hinzu und change_desktop.sh
fügen Sie den folgenden Code hinzu:
#!/bin/sh
change_desktop()
{
month=$(date +%B)
last_month=$(date '+%B' --date '1 month ago')
mkdir /home/$USER/Desktop/$month
sed -i "s|Desktop/$last_month|Desktop/$month|" ~/.config/user-dirs.dirs
}
change_desktop
Erstellen Sie dann einen Cron-Job für den aktuellen Benutzer wie folgt:
0 0 12 * * sh /home/$USER/change_desktop.sh
Wenn Sie dies jedoch manuell tun möchten, können Sie den ersten Codeausschnitt hinzufügen und in Ihrem Terminal ~/.bashrc
ausführen. change_desktop
Er erledigt die Arbeit für Sie, da er bereits eine Funktion in Ihrem ist ~/.bashrc
.
Antwort3
Es ist mir gelungen, mein eigenes Drehbuch zu verfassen.
new_desktop="$HOME/Desktop/$(LC_ALL=tr_TR.utf8 date +'%B-%Y')"
if [ ! -d "$new_desktop" ]; then
mkdir "$new_desktop"
xdg-user-dirs-update --set DESKTOP "$new_desktop"
nautilus -q
fi
Aber ich bezweifle, wie zuverlässig es ist.