笔者在打扫NAS存储当中的文件时, 发现某个包含了10T左右文件的目录里,有成堆Windows缩略图文档Thumbs.db, 想使用批量删除命令定点清理掉, 减少一点存储成本:
find xxxx_path -type f -name "Thumbs.db" | xargs rm -f {}
结果控制台运行了一会儿, 报错
xargs: unterminated quote
什么鬼? 搞不清楚, 网上众说纷纭, 都试了试, 例如有人说需要检查看看哪个文件这么皮, 用反引号揪出来的:
find xxxx_path -name \'
是的, 我还有那闲工夫。还有人说应该加\n参数的。耳边似乎响起贴吧党的惯用答案, 把整个盘都抹掉, 岂不美哉? 可我的目标很简单的,文件是固定的文件名, 关闭什么引号呢? 最后不纠结了, 毕竟技术渣, 换了-exec, 命令变成了这个样子:
find xxxx_path -type f -name "Thumbs.db" -exec rm -f {} \;
补充一句, 这个时候可能有人心中要问了, 加个-type f参数做什么?
f => file
d => directory
举个例子, 删除一个文件夹下所有含有.DS_Store字样的文件
find /some_path -type f -name ".DS_Store" -exec rm -f {} \;