【发布时间】:2016-05-29 18:47:48
【问题描述】:
我的当前工作目录中有 3 个文件,如下所示:
abc def xyz.tgz
ghi jkl xyz.tgz
def klm zxc.tgz
我希望重命名文件,以便将空格替换为下划线。为此,我使用了以下方法:
rename -v 's/\ /_/g' *tgz
以下是问题:
- 命令执行没有任何错误,但没有重命名文件。
-
当目录只包含一个tgz文件时,会出现如下错误:
rename: not enough arguments -
如果我使用以下内容:
rename " " "_" *.tgz只有一次出现的空格被下划线替换。
【问题讨论】:
-
你的
rename是 perlrename还是 util-linuxrename还是别的什么?貌似是util-linuxrename(man7.org/linux/man-pages/man1/rename.1.html),不支持s/.../.../。 -
ls -l $(which rename) -
没有 bash
rename命令。这是一个外部命令,不是 shell 的一部分,不应标记为“bash”。 -
为什么不用 mv 命令?