Bash:重命名文件夹中的特定文件
最近我构建了一个脚本,可以将我所有的文章从 dev.to 下载到 markdown 文件中。
我使用了时间戳和文章的名称。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--e-NYA47r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// thepracticaldev.s3.amazonaws.com/i/5uxqzlql02izpfsfxbzk.png)
这是可行的,但有一件烦人的事情:每篇文章的文件名和 frontmatter 中都有一个日期。
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--dVjRlOsp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev. s3.amazonaws.com/i/bk47tw7fl40ui5k39anm.png)
这导致:
-
复杂性增加:如果我想更改日期,则必须更改两个地方的日期。
-
如果有两个不同的日期,真相的来源是什么?
问题
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--0jXSWs-3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// thepracticaldev.s3.amazonaws.com/i/23idl0hut7m9fdsdpbjg.png)
期望结果
[
](https://res.cloudinary.com/practicaldev/image/fetch/s--diUf6ACp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev. s3.amazonaws.com/i/xa0tcaac83bp896ssgmt.png)
让我们解决这个问题
# loop over every file with `md` extension, assign it to `file`
for file in *.md
do
# rename (by variable expansion starting from position 11)
mv "$file" "${file:11}"
done
进入全屏模式 退出全屏模式
延伸阅读
-
用于手册页
-
mv 手册页
-
可变扩展
问题
-
你会写 bash 脚本吗?
-
你最喜欢哪个?
更多推荐

所有评论(0)