Estoy usando activamente el escritorio, por lo que los archivos y carpetas se acumulan rápidamente en el escritorio.
Necesito una bashrc
forma de verificar el mes el primer día, luego crear un directorio con el nombre del mes y finalmente configurarlo desktop
.
Respuesta1
- puedes configurar un cronjob, que ejecuta un script de tu diario:
man crontab
- en el guión usted:
- cree una carpeta para el último mes en su escritorio:
man mkdir
y¿Cómo asigno la fecha del último mes (solo año y mes - 2016-07) como variable? - ejecuta un
find
que encuentra todos los archivos que tienen más de un mes. A continuación se muestra un ejemplo de un archivofind
que elimina (rm
) archivos más antiguos; deberá adaptarlo amv
los archivos más antiguos en el directorio creado:Eliminar archivos de más de X días +
- cree una carpeta para el último mes en su escritorio:
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.sh
agregue 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 ~/.bashrc
y ejecutarlo change_desktop
en 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.