我正在使用 macOS Sequoia (15.3.1),并且我正在努力使用 + 通配符删除文件夹及其子文件夹中的文件rm -R
,例如*1.XXX
。
我的 Mac 音乐库中有多个重复文件(*.mp3
、*.m4p
),我试图删除它们,避免手动进入每个文件夹。由于重复文件的名称以1
或结尾2
,*1.mp3
因此可以正常使用。
我注意到简单的ls -r *.*
或*.mp3
没有提供任何结果(没有找到匹配项,尽管我知道那里有文件)。
但如果我转到特定文件夹并输入,rm *1.mp3
它就可以起作用。
*
是 shell 中扩展的通配符,它不会被解释rm
。写作的*1.mp3
意思是“目录中所有以 1.mp3 结尾的文件”。如果你正在运行的父目录rm
没有任何这样的文件,它将扩展为空。不过,您可以使用命令获得您想要的行为
find
:笔记:
"
) - 这样做是为了防止 shell 解释*
, 并find
处理它。-i
安全措施,可防止删除您不想删除的文件。如果您运行此命令并确信它找到了正确的文件,则可以删除,-i
这样您就无需手动批准每次删除。