我经常使用桌面,因此文件和文件夹会在桌面上快速堆积。
我需要一种bashrc
方法,它在第一天检查月份,然后创建一个带有月份名称的目录,最后设置它desktop
。
答案1
- 你可以设置一个 cronjob,运行你每天的脚本:
man crontab
- 在脚本中你:
- 在桌面上创建上个月的文件夹:
man mkdir
并如何将上个月的日期(仅年份和月份 - 2016-07)分配为变量? - 您运行 a
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
添加以下代码:
#!/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
但我怀疑它的可靠性如何。