1

我经常需要打字

#!/usr/bin/bash
for i in files-*
do
    mv $i ${i/files/items}
done

这可以做得更简单吗?

4

3 回答 3

2

一句话:是的。更简单:可能不是。

for i in files-*; do mv "$i" "${i/files/items}"; done

如果你经常需要这样的东西,你可以把它封装在一个函数中,然后调用那个函数。或者在您喜欢的编辑器中定义某种模板/文本块/宏。

于 2013-03-23T21:44:43.723 回答
1

它不会比 Ansgar 已经建议的要短很多。但是,您可以通过以下几种机制节省一些输入:

Bash 命令历史

使用 bash 的命令历史记录来调用命令。不完全是高科技,但这可以为您节省大量打字,并且您不必在系统上保存/更改任何内容。

一个脚本文件

将命令放入您保存在路径中某处的脚本文件中。

 #/bin/bash
 for i in files-*; do 
     mv $i ${i/files/items} 
 done

在这种情况下,我会保持多行完整以优化可读性

别名

将命令的别名添加到您的 .bashrc 文件中

 alias movem='for i in files-*; do mv $i ${i/files/items}; done'

完成后,只需输入别名即可运行命令。这样做的一个优点是您不必创建脚本文件。

ps:/usr/bin/bash???你用的是什么系统?

于 2013-03-23T21:57:11.340 回答
1

如果你已经perl安装,你可以使用rename

rename 's/files/items/' files-*
于 2013-03-23T21:45:28.673 回答