重命名命令错误,文件不再显示在 Windows 网络驱动器中

重命名命令错误,文件不再显示在 Windows 网络驱动器中

我使用重命名命令时犯了错误

find . -type f -exec rename 's/[^A-Za-z0-9._]//g' {} +

此后,文件不再像以前一样位于其文件夹下,并且每个文件前面都有 .。现在我的客户看不到这些文件。一旦我删除 .,他们就可以看到这些文件了。

我怎样才能从文件中删除 . ?像这样:

.finacialyear2008half.doc

finacialyear2008half.doc

请帮帮我!我需要快速修复。

答案1

find . -type f -exec rename 's/\.//' '{}' \;

考虑一下重命名的 -n 参数:它只是显示删除它之后会做什么!

答案2

假设您正在使用 bash,您可以循环遍历文件,用替换当前文件夹中所有文件的文件名中第一次出现/.的。/

for filename in $(find . -maxdepth 1 -type f)
do
  mv -v $filename ${filename/\/.//}
done

这假设您不需要递归重命名文件,并且仅在当前目录中有效(-maxdepth 1)。

免责声明:在对数据执行任何操作之前,请务必备份您的文件或至少尝试使用一堆测试文件。

相关内容