错误重命名命令后文件的位置

错误重命名命令后文件的位置

这里是新手...只是尝试使用以下命令将名称中有 2 个点的文件名更改为单个点

rename 's/.././' filename

该文件已消失,但我认为它并未被删除,因为内存中仍有相同数量的空间。该文件会被发送到哪里?

答案1

现在调用该文件.lename

(假设该文件filename之前被调用过,我猜您的“真实”文件将具有不同的名称。但是无论如何调用该文件,前两个字符已被替换为.。)

这是因为正则表达式中的点是特殊字符意义匹配任意字符。所以,..是任意两个字符。因为rename仅替换第一个匹配项,除非您添加了全球的修饰符 ( g),给定文件名的前两个字符已被替换。

注意,这里的“替换”s/regex/replacement/modifiers不是正则表达式,因此.表达式右侧的s/.././可以按您的预期工作。


现在,你的文件在哪里:

以a开头的文件.是隐藏文件。因此,您不会通过运行看到它们ls。运行ls -a以显示这些文件。

使用重命名您的文件mv .lename filename


下次,转义正则表达式特有的字符:

rename 's/\.\././' filename

此外,您可以rename -n ...在执行实际重命名之前进行试运行并检查结果。那会向你展示这样的东西:

rename(filename, .lename)

相关内容