Función bashrc para crear una carpeta cada mes y cambiarle XDG_DESKTOP_DIR

Función bashrc para crear una carpeta cada mes y cambiarle XDG_DESKTOP_DIR

Estoy usando activamente el escritorio, por lo que los archivos y carpetas se acumulan rápidamente en el escritorio.

Necesito una bashrcforma de verificar el mes el primer día, luego crear un directorio con el nombre del mes y finalmente configurarlo desktop.

Respuesta1

Respuesta2

Primero cambie manualmente la configuración usted mismo para este mes y ejecútela durante el próximo mes.

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 
}

Esto creará la carpeta del mes actual en el Escritorio y luego buscará el último mes en la configuración y lo cambiará al mes actual.

No sé cómo ejecutar esta pieza automáticamente usando ~/.bashrc, pero puedes configurar un trabajo cron para el usuario y dejar que se ejecute todos los meses. Simplemente agregue este fragmento de código a un archivo llamado change_desktop.shagregue el siguiente código:

#!/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

Luego cree un trabajo cron para el usuario actual como este:

0 0 12 * * sh /home/$USER/change_desktop.sh

Sin embargo, si desea hacer esto manualmente, puede agregar el primer fragmento de código ~/.bashrcy ejecutarlo change_desktopen su terminal y hará el trabajo por usted, ya que ya es una función en su archivo ~/.bashrc.

Respuesta3

He logrado inventar mi propio guión.

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

Pero dudo de lo fiable que sea.

información relacionada