bash - 不以“.gz”结尾的 gzip 文件

bash - gzip files that are not ending in ".gz"

如何 gzip 目录中的文件,同时跳过已经 gzip 的文件而不出现错误或警告消息?

我已经尝试过 gzip *ls | grep -v gz | xargs gzip 但它们会发出有关已压缩文件的警告消息。

使用扩展的 globbing:

shopt -s extglob
gzip !(*.gz)

...或者,如果您需要能够递归到子目录,find:

find . -type f ! -name '*.gz' -exec gzip -- {} +