目录
使用 find 命令实现查找指定目录下的所有文件,结合 -exec 参数,配合 Linux / Unix系统的标准核心命令(如:mv、cp、chmod、sed 等),实现批量文件操作,如:文件重命名、备份、修改读写权限、内容替换等。
1、查找并批量重命名
bash
# 查找并批量重命名
find /home/ops/logs/2026*/*-service.log -type f -exec bash -c 'mv "$1" "${1}.20260709.bak"' _ {} \;
2、查找并批量复制+重命名
bash
# 查找并批量复制+重命名
find /home/ops/logs/2026*/*-service.log -type f -exec bash -c 'cp "$1" "${1}.20260709.bak"' _ {} \;
3、查找并批量修改文件的Owner和组织
bash
# 查找并批量修改文件的Owner和组织
find /home/ops/deploy/*-service/ -type f -name "*" -exec chown ops:ops {} \;
4、查找并批量修改文件的读写权限
bash
# 查找并批量修改文件的读写权限
find /home/ops/deploy/*-service/ -type f -name "*" -exec chmod 644 {} \;
5、查找并批量替换文本内容
bash
# 查找并批量替换文本内容(使用正则表达式匹配)
find /home/ops/deploy/*-service/config/ -type f -name "redis.properties" -exec sed -i 's/旧字符串/新字符串/g' {} +
# 或
find /home/ops/deploy/*-service/config/redis.properties -type f -exec sed -i 's/旧字符串/新字符串/g' {} +