Bash shell-从文件名中删除最后一个字符的更简便方法

Bash shell-从文件名中删除最后一个字符的更简便方法

我可以将字符串附加到文件名,而不必输入两次命令的重复部分:

mv foo{,_bar}

这将把我的重命名foofoo_bar

有没有办法做相反的事情 - 删除_bar文件foo_bar名而不必再次输入相同的内容?也就是说 - 不做类似的事情:

mv long/path/to/foo_bar long/path/to/foo

答案1

在 bash 中,可以使用参数扩展:

path=/long/path/to/foo_bar
mv "$path" "${path%_bar}"  # Remove the pattern from the end of the value.

对于文字字符串,您只需切换花括号中元素的顺序即可:

mv long/path/to/foo{_bar,}

相关内容