我有一些文件和文件夹保存在 Linux 中的外部硬盘驱动器上,其中一些文件和文件夹包含字符“::”我想从驱动器上的所有文件和文件夹中删除这些字符,因为我在尝试时遇到问题在 windows 中查看文件。
我已通过在终端中使用成功将它们从一个文件夹中删除-
rename 's/:://' *::*.*
当在该单个目录中但想要对驱动器上的所有文件和文件夹执行此操作时,并且有许多子文件夹。
我可以在上面的命令中添加什么以使其适用于子文件夹中的所有子文件夹和文件,或者有更好的命令。
谢谢你。
您可以使用该find
命令递归搜索文件和目录,例如。
find path/to/start/dir/ -depth -name '*::*.*' -exec rename 's/:://' {} +
-depth
如果您要重命名文件和目录,这一点很重要(否则该命令可能会在重命名它们之前通过重命名它们的包含目录来“孤立”某些匹配的文件)。如果您只想重命名文件,则可以添加-type f
和删除-depth
.
我建议首先运行命令rename -n
以确保它做正确的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句