我只想将我的自动化快速操作从当前脚本 YYYYMMDD 更改为 YYMMDD。看起来应该很简单,但我已经尝试解决这个问题好几天了&&我不知所措。
嗨,这就是我所拥有的:
for f in "$@"
do
filedate=$(date -r $(stat -f %B $f) +%Y%m%d);
filename=$f:t
filepath=$f:h
mv $filepath/{"$filename","$filedate $filename"}
done
我已经到处搜索如何调整这个&&我似乎无法弄清楚。我知道,我知道 YYYYMMDD 是首选,但我想要 YYMMDD 格式。
另外,我尝试这样做:
for f in "$@"
do
filedate=$(date -r $(stat -f %B $f) +%Y%m%d_);
filename=$f:t
filepath=$f:h
mv $filepath/{"$filename","$filedate $filename"}
done
在日期末尾我加了下划线,因为我希望所有日期都遵循该下划线。但是当我运行它时,它会返回一个空格。以 YYYYMMDD_ blahblah.png 为例。由于这个空间甚至不在脚本中,我该如何去掉它?另外,关于我可以在哪里了解更多有关自动化和脚本编写的建议也很棒。我知道那里有很多东西,但如果有任何特别的建议那就太棒了。谢谢。
在与
date
命令一起使用的格式字符串中,%Y
扩展为 4 位年份(当前为“2024”),“%y”扩展为 2 位年份(当前为“24”)。只需将“%Y”更改为“%y”即可。
(我相信你的话,你有充分的理由这样做。)
至于空间,就在你的
mv
命令中:
mv $filepath/{"$filename","$filedate $filename"}
^HERE
我认为您想要将
filedate
(尾随下划线)和 $filename
连接起来,不带空格。
mv $filepath/{"$filename","$filedate$filename"}
或者您可以将
$filedate
设置为不带下划线的值,并在 mv
命令中添加下划线:
mv $filepath/{"$filename","${filedate}_$filename"}
我个人认为这样更干净。请注意,您需要添加花括号,因为 _
可能是标识符的一部分。