Linux找到所有缩小的东西?

时间:2013-06-28 21:23:14

标签: regex linux bash

我需要一个find参数:

  1. 列出所有不在文件夹./bootstrap
  2. 中的内容
  3. 排除以.js结尾但不在.min.js
  4. 中的文件
  5. 排除以.css结尾但不在.min.css
  6. 中的文件

    最好是在一个独特的命令中。

    我一直在关注-prune-regex,但似乎都没有效果。我正在使用它来输入zip命令来压缩所有内容,作为构建过程的一部分。

2 个答案:

答案 0 :(得分:3)

这样的事情应该有效:

find . \( -iname "*.js" -or -iname "*.css" \) -not -iname "*.min.js" -not -iname "*.min.css" | grep -v '^\./bootstrap'

您也可以使用find的{​​{1}}标记执行此操作,但我认为语法比简单-prune更复杂。

另请注意,我使用的是grep而不是-iname - 这会使字符串不区分大小写,这通常就是我所做的,以防我的源代码树包含来自Windows的文件,但请随意使用适合您情况的任何一种。

答案 1 :(得分:1)

这个怎么样?

find . ! \( -name bootstrap -prune -o -name '*.js' ! -name '*.min.js' -o -name '*.css' ! -name '*.min.css' \)

如果您只想保留文件,请在最后添加-type f