【发布时间】:2018-02-28 08:13:27
【问题描述】:
我正在尝试重命名与一个目录中的模式匹配的多个文件。
文件:
stack_overflow_one.xml
stack_overflow_two.xml
stack_overflow_one.html
我想将stack_overflow 重命名为heap_graph
heap_graph_one.xml
heap_graph_two.xml
heap_graph_one.html
我尝试了以下方法:
使用rename:
rename stack_overflow heap_graph stack_overflow* # returns 'The syntax of the command is incorrect.'
在 Bash 中使用 for 循环
# how can I write this in one line? I've tried wrapping in one line, but also does not work
for i in stack_overflow* do
mv "$i" "${i/stack_overflow/heap_graph}"
done
但是,这些都不起作用。
【问题讨论】:
-
rename有许多不同的实现,支持不同的语法——在我的电脑上,语法是rename s/stack_overflow/heap_graph/ stack_overflow* -
在 for 循环中使用分号将其写在一行上:
for foo in bar; do something; done
标签: bash rename file-rename