我有一个Perl脚本,需要在任何平台上工作(Windows,Mac,Linux等)。 其中一部分功能是重命名文件,但我不希望它覆盖现有的文件。 假设脚本被称为“ my_rename”,并且它采用与“ rename”函数相同的参数,并且用户执行此命令:
my_rename test.txt test.TXT
如果-e“ test.txt”和-e“ test.TXT”都返回true,则会出现问题。 在以下条件下,我想如何处理此情况:
情况1:在区分大小写的文件系统上:
- 报错“test.TXT”已存在并中止操作
情况2:在不区分大小写的文件系统上,当现有文件名的实际大小写为“test.TXT”时:
- 发出警告,文件名保持不变
情况3:在不区分大小写的文件系统上,当现有文件名的实际大小写不是“test.TXT”时:
- 将文件重命名为“test.TXT”
由于该脚本必须是可移植的,因此不能依赖于系统相关的功能或实用程序。
任何建议都将不胜感激。
- Phil