find . -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" | xargs -n 1 super-tinypng 请详细给出代码
时间: 2023-06-13 13:07:08 浏览: 212
这是一个命令行命令,可以批量压缩指定目录下的所有 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` 进行压缩。
批量将include的头文件名大小写改成.h源文件名大小写
批量将`.h`头文件的名称转换成与其对应`.cpp`源文件相同的大小写,通常涉及到文本处理和字符串替换的操作。这在某些项目结构中可能很有用,比如统一命名约定。以下是一个简单的步骤:
1. **打开命令行或终端**:首先,你需要找到包含所有头文件的目录。
2. **定位正则表达式模式**:确定头文件的命名规则,例如,它们通常是`file_name.h`的形式。你可以创建一个正则表达式来匹配这种模式,如`^(\w+)\.h$`,其中`\w+`代表一个或多个字母数字字符。
3. **编写脚本或使用工具**:对于Windows用户,可以使用`findstr`、`ren`等命令结合批处理文件(`.bat`),对于Unix/Linux用户,则可以用`grep -rl`配合`sed`或`rename`命令。例子如下:
对于Unix/Linux:
```
find . -type f \( -iname "*.h" -o -iname "*.H" \) | xargs grep -l "^#include \"\([^"]*\).h$" | xargs sed -i 's/#include "\(.*\)"/#include "\L\1"/'
```
对于Windows batch script:
```batch
@echo off
setlocal enabledelayedexpansion
for /r %%f in (*.h *.H) do (
set "filename=%%~nf"
set "replacement=!filename:.h=.cpp!"
ren "%%f" "!replacement!" >nul
)
```
4. **备份原文件**:为了保险起见,在修改之前最好先备份原始文件。
5. **测试并确认**:完成上述操作后,检查头文件是否已更新为正确的大小写形式,并确保源文件引用无误。
阅读全文