Terminal Mac终端命令以“原始文件名+当前日期”的形式重命名

Terminal Mac终端命令以“原始文件名+当前日期”的形式重命名,terminal,Terminal,正如标题上所示,我试图将一个文件重命名为currentdate+原始文件名。比如说 yeah.mp3至yeah_2014_05_19:0131.mp3 顺便说一句,我在终端日期+%Y_%m_%d:%H%m收到的日期表单只是命令 有人知道吗?这是你可以做到的: original="yeah.mp3" # Extract extension - the dot and anything after it extension=${original##*.} # Extract base - anyth

正如标题上所示,我试图将一个文件重命名为currentdate+原始文件名。比如说

yeah.mp3至yeah_2014_05_19:0131.mp3

顺便说一句,我在终端日期+%Y_%m_%d:%H%m收到的日期表单只是命令


有人知道吗?

这是你可以做到的:

original="yeah.mp3"
# Extract extension - the dot and anything after it
extension=${original##*.}
# Extract base - anything before dot
base=${original%.*}
# Formulate date part
datepart=$(date +%Y_%m_%d:%H%M)
# Now build new filename
newname="${base}_${datepart}.${extension}"
echo mv "$original" "$newname"
例如,如果你想完成一整批MP3,你需要这样一个循环:

for original in *.mp3
do
   # Extract extension - the dot and anything after it
   extension=${original##*.}
   # Extract base - anything before dot
   base=${original%.*}
   # Formulate date part
   datepart=$(date +%Y_%m_%d:%H%M)
   # Now build new filename
   newname="${base}_${datepart}.${extension}"
   echo mv "$original" "$newname"
done
注:


如果您对它将要做的事情感到满意,请删除倒数第二行的echo一词——此时它什么也不做,只会告诉您它计划做什么。

大概您有多个文件?是否只需要重命名MP3文件?它可以是任何类型的文件。我尝试使用mv yeah.mp3到yeah+日期%Y\u%m\u%d:%H%m.mp3或yeah+日期&%Y\u%m\ud:%H%m,但失败了。感谢您的贡献!它起作用了!哇,我不知道除了命令mv original newname,还需要完成6个步骤。我不熟悉shell编程。你能推荐一些教程网站或书籍来学习基本的东西吗?实际上我正在创建一个脚本。我在applescript上尝试了您的解决方案,但遇到了一个错误。这是预期的表达式,但在第一行do shell script original=~/Downloads/recording.mp3上发现未知标记。你能帮我吗?这篇文档告诉了你关于Bash的几乎所有你需要知道的东西——在我看来,Bash是任何人都需要的唯一shell。将你的Applescript作为一个新问题发布-StackOverflow上有人比我更擅长于此,因此如果当前问题的格式难以阅读,你会得到比将其隐藏在评论中更好的答案。你可以在这里添加一个新问题的链接,以确保我能找到它并找到你。我有点担心我的问题会对提出这个问题的人来说很愚蠢-1。但我在网上搜索了几个小时,结果没有找到解决办法,所以我把它贴了出来。我将为applescript创建另一个线程。谢谢你的指导!我很感激!与java不同,shell可以逐行执行循环,这有点令人惊讶:-