Я активно пользуюсь настольным компьютером, поэтому на нем быстро скапливаются файлы и папки.
Мне нужен bashrc
способ, чтобы он проверял месяц в первый день, затем создавал каталог с названием месяца, а затем устанавливал его desktop
.
решение1
- Вы можете настроить cronjob, который будет запускать скрипт ежедневно:
man crontab
- в сценарии вы:
- создайте на рабочем столе папку за последний месяц:
man mkdir
иКак назначить дату прошлого месяца (только год и месяц - 2016-07) в качестве переменной? - вы запускаете ,
find
который находит все файлы старше одного месяца. Вот пример ,find
который удаляет (rm
) старые файлы - вам нужно будет адаптировать его дляmv
старых файлов в созданном каталоге:Удалить файлы старше X дней +
- создайте на рабочем столе папку за последний месяц:
решение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.sh
add 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
Но я сомневаюсь, что это надежно.