linux批处理重命名目录并从名称中删除#colracter

Gab*_*mon 3 linux bash command-line

我有一个包含很多子目录的目录,其中包含#infront:

#adhasdk
#ad18237
Run Code Online (Sandbox Code Playgroud)

我想将它们全部重命名并删除我尝试做的#caracter:

rename -n `s/#//g` *
Run Code Online (Sandbox Code Playgroud)

但似乎没有奏效.

-bash: s/#//g: No such file or directory
Run Code Online (Sandbox Code Playgroud)

对此有任何想法.谢谢

Die*_*ano 7

只是用

$ rename 's/^#//' *
Run Code Online (Sandbox Code Playgroud)

使用-n只是为了检查你认为它会发生什么.在您的示例中,您可以获得有关错误消息中使用的错误引号(反引号)的线索

 -bash: s/#//g: No such file or directory
Run Code Online (Sandbox Code Playgroud)

bash正在尝试执行一个名为的命令s/#//g.

不,使用g(全局)而不是锚定正则表达式,您将替换任何#,而不仅仅是第一个位置的正则表达式.