在 Linux 中将文件夹名称中的“:2f”重命名为“-”

在 Linux 中将文件夹名称中的“:2f”重命名为“-”

我有一个从 NAS 驱动器中取出的硬盘,其中的文件来自 Mac - 但是,某些文件名曾经是,例如“备份 16/07/14”,然后在 NAS 上更改为“备份 16:2f07:2f14”。

这证明在将文件复制到新 NAS 时会出现问题。所以我要做的就是通过在包含所有这些其他文件夹的文件夹上运行命令将“:2f”切换为“-”。

我对 Linux 还不熟悉,所以我很困惑。我在虚拟机上将硬盘装在了 ubuntu 上。

有什么建议么?

答案1

如果你有perl-renameaka prename

find . -depth -name "*:*" -exec perl-rename 's/:2f/-/g' {} +

没有:

find . -depth -name "*:*" |
while read -r name; do
    mv -nT "$name" "${name//:2f/-}"
fi

答案2

你需要使用

sed

命令。它可用于代替文件名中的字符。首先查找包含

find

命令并使用“|”将它们通过管道传送到 sed。

相关内容