我需要在我的网络服务器上更新项目。不幸的是,其他人已经改变了服务器上的一些文件,我不想覆盖它们。我可以安全地覆盖所有以“Builder”开头的文件(比如“BuilderUser.php”或“BuilderTemplate.php”)。删除不以“Builder”开头的文件
我的想法是复制我的本地目录并删除所有不以“Builder”开头的文件,然后上传生成的文件夹。我正在使用OS X.有什么方法可以删除所有没有前缀“Builder”的文件吗?
我需要在我的网络服务器上更新项目。不幸的是,其他人已经改变了服务器上的一些文件,我不想覆盖它们。我可以安全地覆盖所有以“Builder”开头的文件(比如“BuilderUser.php”或“BuilderTemplate.php”)。删除不以“Builder”开头的文件
我的想法是复制我的本地目录并删除所有不以“Builder”开头的文件,然后上传生成的文件夹。我正在使用OS X.有什么方法可以删除所有没有前缀“Builder”的文件吗?
打开终端,导航到你的项目的根目录,然后键入
find . -type f | grep -v '/Builder[^/]*' | xargs rm
find
将在.
或子目录打印任何的-type f
意味着常规文件(而不是块设备,符号链接,目录,等等。)。 grep
将打印任何一行(因为-v
)不是匹配模式。对于该模式,/
表示一个目录,'Builder'必须是在目录之后出现的第一个东西(因此在文件名中),[^/]
意味着除/
(目录分隔符)之外的任何字符,而*
意味着任何数量的最后一个项目(非斜线)。然后xargs
从管道获取文件并将它们作为参数传递给rm
。
请注意,这只适用于名称中没有空格的文件。如果您需要一个处理空格的文章,请在手册页中发布或查找零分隔选项。
谢谢凯文! – Lukas