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.sh添加以下代码:

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

但我怀疑它的可靠性如何。

相关内容