função bashrc para criar uma pasta todo mês e mudar XDG_DESKTOP_DIR para ela

função bashrc para criar uma pasta todo mês e mudar XDG_DESKTOP_DIR para ela

Estou usando ativamente a área de trabalho, então arquivos e pastas se acumulam rapidamente na área de trabalho.

Eu preciso de uma bashrcmaneira que ele verifique o mês no primeiro dia, depois crie um diretório com o nome do mês e, finalmente, defina-o desktop.

Responder1

Responder2

Primeiro, altere manualmente a configuração para este mês e execute-a para o próximo mês.

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 
}

Isso criará a pasta do mês atual no Desktop e, em seguida, procurará o último mês na configuração e alterará para o mês atual.

Não sei como executar esta peça automaticamente usando o ~/.bashrc, mas você pode configurar um cron job para o usuário e deixá-lo rodar todos os meses. Basta adicionar este trecho de código a um arquivo chamado change_desktop.shadicione o seguinte 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

Em seguida, crie um cron job para o usuário atual como este:

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

Se, no entanto, você quiser fazer isso manualmente, você pode adicionar o primeiro trecho de código ao ~/.bashrce executá-lo change_desktopno seu terminal e ele fará o trabalho para você, pois já é uma função no seu arquivo ~/.bashrc.

Responder3

Consegui inventar meu próprio roteiro.

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

Mas duvido de quão confiável seja.

informação relacionada