当文件名是连字符时,如何删除其前两个字符?

当文件名是连字符时,如何删除其前两个字符?

我有一堆名为 的 mp3 文件- foo - bar.mp3。我的目标是删除终端 (Bash) 上的第一个连字符和第一个空格,这样会得到foo - bar.mp3。我尝试使用 ,rename 's/^..//' *它对名为 的文件运行良好foo.mp3。但是,我为每个文件都收到“未知选项:- foo_1 - bar.mp3”的提示。谁能帮忙?

答案1

您可以使用--来指示选项的结束,以便以 开头的文件名-被视为文件名参数:

rename -n 's/^..//' -- *.mp3

前任。

$ rename -n 's/^..//' *.mp3
Unknown option:  foo - bar.mp3
Usage:
    rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr
    [ files ]

然而

$ rename -n 's/^..//' -- *.mp3
rename(- foo - bar.mp3, foo - bar.mp3)

相关内容