毎月フォルダーを作成し、XDG_DESKTOP_DIR をそれに切り替える bashrc 関数

毎月フォルダーを作成し、XDG_DESKTOP_DIR をそれに切り替える bashrc 関数

デスクトップを頻繁に使用するため、デスクトップ上にファイルやフォルダが急速に蓄積されます。

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

しかし、それがどれだけ信頼できるかは疑問です。

関連情報