从文件名中删除问号“?” OSX

从文件名中删除问号“?” OSX

我的音乐库包含许多 .flac 文件,需要从文件名中删除“?”,因为我当前的音乐播放器(Sonos)由于某种原因无法看到这些文件。

是否有命令或脚本可以帮助我查找并删除音乐目录中的问号“?”?

目录设置:

~/music/artist/album/01 title with?.flac

谢谢

答案1

打开终端并更改为您的目录,然后使用列出的命令删除?该目录中文件名中的所有出现:

cd ~/music/artist/album/

for f in *; do mv -- "$f" "${f//\?/}"; done

提交之前运行该命令后您可以测试它,它将显示原始文件名和新文件名:

for f in *; do echo -- "$f" "${f//\?/}"; done

-- 01 title with?.flac 01 title with.flac

要递归执行此操作,您需要使用find命令,然后一定要先在测试目录中尝试一下。弄乱所有文件名的替换字符串可能会让事情变得更糟而不是更好。对于此类递归操作,我始终建议事先备份数据。

第一个命令是试运行,这意味着实际上什么都没有改变。第二个命令是真正的命令,它递归地重命名当前目录中的所有文件名(消除问号)以及所有子目录

find . -type f -name '*\?*' | while read f; do echo mv "$f" "${f//\?/}"; done

find . -type f -name '*\?*' | while read f; do mv "$f" "${f//\?/}"; done

相关内容