Функция bashrc для создания папки каждый месяц и переключения XDG_DESKTOP_DIR на нее

Функция bashrc для создания папки каждый месяц и переключения XDG_DESKTOP_DIR на нее

Я активно пользуюсь настольным компьютером, поэтому на нем быстро скапливаются файлы и папки.

Мне нужен bashrcспособ, чтобы он проверял месяц в первый день, затем создавал каталог с названием месяца, а затем устанавливал его desktop.

решение1

решение2

Сначала вручную измените конфигурацию на этот месяц и запустите ее на следующий месяц.

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 
}

Это создаст папку текущего месяца на рабочем столе, а затем найдет последний месяц в конфигурации и изменит его на текущий месяц.

Я не знаю, как запустить эту часть автоматически с помощью ~/.bashrc, но вы можете настроить cron-задание для пользователя и позволить ему запускаться каждый месяц. Просто добавьте этот фрагмент кода в файл с именем change_desktop.shadd the following code :

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

Затем создайте задание cron для текущего пользователя следующим образом:

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

Однако если вы хотите сделать это вручную, вы можете добавить первый фрагмент кода в файл ~/.bashrcи запустить change_desktopего в терминале, и он выполнит всю работу за вас, поскольку он уже является функцией в вашем файле ~/.bashrc.

решение3

Мне удалось придумать свой собственный сценарий.

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

Но я сомневаюсь, что это надежно.

Связанный контент