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

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

相關內容