删除不以“Builder”开头的文件

时间:2011-11-04 19:08:39

标签: macos

我需要在我的网络服务器上更新项目。不幸的是,其他人已经改变了服务器上的一些文件,我不想覆盖这些文件。我可以安全地覆盖所有以“Builder”开头的文件(如“BuilderUser.php”或“BuilderTemplate.php”)。

我的想法是复制我的本地目录并删除所有不以“Builder”开头的文件,然后上传生成的文件夹。我正在使用OS X.有没有办法删除所有没有以“Builder”为前缀的文件?

1 个答案:

答案 0 :(得分:1)

打开终端,导航到项目的根目录,然后键入

find . -type f | grep -v '/Builder[^/]*' | xargs rm

find将在.或子目录中打印任何内容,-type f表示常规文件(与块设备,符号链接,目录等相对)。 grep将打印任何(因为-v 与该模式不匹配的行。对于模式,/表示目录,'Builder'必须是目录后出现的第一个内容(因此在文件名中),[^/]表示除/之外的任何字符(目录)分隔符),*表示最后一项(非斜杠)的任意数量。然后xargs从管道中获取文件并将它们作为参数传递给rm

请注意,这仅适用于名称中没有空格的文件。如果您需要一个处理空格的方法,请在手册页中发布或查找零分隔选项。