find . -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" | xargs -n 1 super-tinypng 请详细给出代码
时间: 2023-06-13 07:07:08 浏览: 203
这是一个命令行命令,可以批量压缩指定目录下的所有 PNG、JPG、JPEG 图片。
具体步骤如下:
1. 打开终端(Terminal)或命令行界面;
2. 进入需要压缩图片的目录;
3. 输入以下命令并执行:
```
find . -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" | xargs -n 1 super-tinypng
```
其中,`.` 表示当前目录,`-iname` 表示不区分大小写匹配文件名,`-o` 表示或者,`-n 1` 表示每次只处理一个文件。
4. 等待命令执行完成即可,压缩后的图片会覆盖原文件。
相关问题
super-tinypng 好像对当前文件夹下子文件夹内的图片无法压缩,这个是为什么
可能是因为 `super-tinypng` 只会对当前文件夹下的图片进行压缩,而不会递归地遍历子文件夹。你可以使用以下命令来递归地压缩当前文件夹下所有子文件夹内的图片:
```
find . -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" | xargs -n 1 super-tinypng
```
这个命令会找到当前文件夹下所有后缀名为 `.png`、`.jpg` 和 `.jpeg` 的图片文件,并逐个调用 `super-tinypng` 进行压缩。
linux中find的组合命令
在Linux中,`find`命令是一个强大的文件搜索工具,它允许用户在目录树中查找特定类型的文件或满足特定条件的文件。你可以通过组合不同的选项和表达式来创建复杂的查找场景。以下是一些常用的`find`组合:
1. **按时间查找**:如 `-mtime +7` 查找过去7天未修改的文件,`-atime -5` 查找在过去5分钟内未访问过的文件。
2. **按大小查找**:`-size +10M` 找到大于10MB的文件,`-size -5k` 找到小于5KB的文件。
3. **按内容查找**:`-name` 和 `-iname` 分别用于精确匹配和忽略大小写的文件名查找,`-exec` 或 `-ok` 可以用来执行操作,例如删除找到的文件。
4. **深度限制**:`-maxdepth` 控制查找的最大深度,避免进入不必要的深目录。
5. **递归查找**:默认情况下,`find`会在当前目录及其子目录下递归查找,但也可以添加 `-type d` 来只查找目录。
6. **并行查找**:`-print0` 和 `xargs -0` 结合可以实现安全的并行处理,防止因空格导致的错误。
例子:
```sh
find /home/user -type f -mtime +7 -size +10M -name "important*"
```
这会查找用户主目录(/home/user)下的所有7天以上未修改、大于10MB且名称包含"important"的普通文件。
阅读全文