Shell find 查找命令行的使用方法
find . -name "*.svg" -exec printf '"%s ,名称为:%s"\n' {} {} \;
参数(GNU find 专用) | 含义示例 | 说明 |
%p | ./dir/aaa.svg | 从搜索起点开始的完整相对路径 |
%f | aaa.svg | 纯文件名(去掉目录部分) |
%P | dir/aaa.svg | 完整相对路径,但去掉了搜索起点本身(即去掉“./”) |
%h | ./dir | 文件所在目录的相对路径(不含文件名) |
%d | 1 | 文件相对搜索起点的深度(0 表示搜索起点) |
%s | 1234 | 文件大小(单位:字节) |
%TY-%Tm-%Td | 2025-08-18 | 文件的最后修改日期,可自定义格式 |
所以你可以这样组合:
只保留文件名:
find . -name "*.svg" -printf '"%f ,名称为:%f"\n'
保留完整相对路径:
find . -name "*.svg" -printf '"%p ,名称为:%f"\n'
去掉开头的“./”:
find . -name "*.svg" -printf '"%P ,名称为:%f"\n'
再加个大小:
find . -name "*.svg" -printf '"%f ,名称为:%f ,大小:%s字节"\n'
如果你的 find
不是 GNU 版本(比如 macOS 自带的 BSD find),-printf
可能不可用,那就回到最前面提供的 -exec printf
写法,它最通用。