You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何递归保留文件夹内各文件末尾内容并维持原目录结构

递归保留日志文件末尾内容并替换原文件(维持目录结构)

需求说明

需要递归处理logs文件夹(含嵌套子文件夹)中的所有文件,根据配置保留文件末尾指定字节数或行数,替换原文件的同时维持原有的目录层级结构。

已验证可用的字节保留实现

你使用的以下命令运行正常,可用于保留每个文件末尾指定字节数:

eval "find $TEMP_FOLDER -type f| while read f;do tail -c "${my_array[0]}" $f > ${f}.tmp && mv ${f}.tmp ${f};done"

优化版命令(更安全通用)

为了避免路径含特殊字符时出现问题,推荐改用read -r,同时去掉不必要的eval:

按字节保留(tail -c)

# 示例:保留每个文件末尾指定字节数,可替换为你的变量/数组值
find "$TEMP_FOLDER" -type f | while read -r file_path; do
    tail -c "${my_array[0]}" "$file_path" > "${file_path}.tmp" && mv "${file_path}.tmp" "$file_path"
done

按行数保留(tail -n)

如果需要保留末尾指定行数,只需将tail -c替换为tail -n:

# 示例:保留每个文件末尾指定行数,可替换为你的变量值
line_count=50
find "$TEMP_FOLDER" -type f | while read -r file_path; do
    tail -n "$line_count" "$file_path" > "${file_path}.tmp" && mv "${file_path}.tmp" "$file_path"
done

关键说明

  • 用临时文件中转再替换原文件,避免处理过程中意外损坏原文件
  • find命令负责递归遍历所有文件,确保嵌套子文件夹中的文件也能被处理
  • read -r能正确处理包含空格、反斜杠的文件路径

内容的提问来源于stack exchange,提问作者sdindiver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:12:06