首页 > 解决方案 > 使用基于 perl 的重命名命令更改以破折号开头的文件名

问题描述

rename是一个基于 perl 的命令行工具,用于重命名多个文件。

我无意中创建了许多名称以或包含破折号或双破折号(---)的文件。当我尝试使用重命名来摆脱破折号时,例如,'--the-file-name' 使用

rename 's/-//g' --the-file-name

rename (可以理解)抱怨 'the-file-name' 不是 rename 命令的允许选项。

有没有办法告诉 rename '--the-file-name' 是文件名而不是选项。

标签: perlcommand-linefile-rename

解决方案


许多命令,包括 Perl 的rename脚本,都支持双破折号来表示命令选项的结尾。因此,要重命名--the-file-namethe-file-name

rename 's/-//g' -- --the-file-name

Perl 的Getopt::Long模块支持这一点并被rename.

一般来说,另请参阅:https ://unix.stackexchange.com/questions/11376/what-does-double-dash-mean-also-known-as-bare-double-dash


推荐阅读