Gzip CSS/JS 使用 OS X 终端
Gzip CSS/JS Using OS X Terminal
我正在尝试使用 OSX 终端在文件夹中创建所有 css 和 js 文件的 gzip 版本 (.gz)。我找到了以下命令,但是当我 cd 到一个测试文件夹并输入命令时,它没有输出任何内容,我希望它会在原始文件旁边的文件夹中创建一个 gzip 副本:
find . -regex ".*\(css\|js\)$" -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
我做错了什么?还是命令需要修改?
OS find
的 X 版本似乎不支持扩展的正则表达式。简单的解决方法是使用逻辑 or
运算符(-o
选项),如下所示:
find . \( -name "*\.js" -o -name "*\.css" \) -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
它将为每个找到的文件搜索文件扩展名和 exec
bash 命令。
更新。
我实际上发现您的语法也可以。您需要使用 find
命令的 -E
选项来使用扩展的正则表达式。您可能还需要用双引号将模式括起来。
find -E . -regex "".*\(css\|js\)$"" -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
来自 find
手册页:
-E Interpret regular expressions followed by -regex and -iregex
primaries as extended (modern) regular expressions rather than basic
regular expressions (BRE's). The re_format(7) manual page fully
describes both formats.
我正在尝试使用 OSX 终端在文件夹中创建所有 css 和 js 文件的 gzip 版本 (.gz)。我找到了以下命令,但是当我 cd 到一个测试文件夹并输入命令时,它没有输出任何内容,我希望它会在原始文件旁边的文件夹中创建一个 gzip 副本:
find . -regex ".*\(css\|js\)$" -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
我做错了什么?还是命令需要修改?
OS find
的 X 版本似乎不支持扩展的正则表达式。简单的解决方法是使用逻辑 or
运算符(-o
选项),如下所示:
find . \( -name "*\.js" -o -name "*\.css" \) -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
它将为每个找到的文件搜索文件扩展名和 exec
bash 命令。
更新。
我实际上发现您的语法也可以。您需要使用 find
命令的 -E
选项来使用扩展的正则表达式。您可能还需要用双引号将模式括起来。
find -E . -regex "".*\(css\|js\)$"" -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
来自 find
手册页:
-E Interpret regular expressions followed by -regex and -iregex
primaries as extended (modern) regular expressions rather than basic
regular expressions (BRE's). The re_format(7) manual page fully
describes both formats.