Estou usando ativamente a área de trabalho, então arquivos e pastas se acumulam rapidamente na área de trabalho.
Eu preciso de uma bashrc
maneira 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
- você pode configurar um cronjob, que executa um script seu diariamente:
man crontab
- no roteiro você:
- crie uma pasta para o último mês em sua área de trabalho:
man mkdir
eComo atribuo a data do último mês (somente ano e mês - 2016-07) como variável? - você executa um
find
que encontra todos os arquivos com mais de um mês. Aqui está um exemplo de umfind
programa que exclui (rm
) arquivos mais antigos - você precisará adaptá-lo paramv
arquivos mais antigos no diretório criado:Exclua arquivos com mais de X dias +
- crie uma pasta para o último mês em sua área de trabalho:
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.sh
adicione 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 ~/.bashrc
e executá-lo change_desktop
no 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.