获取 Linux 中脚本运行前后的变化(基于日期和大小)

获取 Linux 中脚本运行前后的变化(基于日期和大小)

给定一个目录,其中包含目录和文件树,可能包含日志文件。

如何知道运行特定应用程序后哪些文件发生了变化。

考虑到修改时间有时是有用的,有时不是,所以我们需要同时处理这两种情况

  • 仅检查逻辑大小并忽略修改时间
  • 同时考虑逻辑大小和修改时间

答案1

第一种情况 - 仅限尺寸

添加以下脚本然后.bashrc就可以像这样使用了 diff_sizes script.sh

# Use the file names, not the relative path to them, as we grep like that ./PRE_DU
PRE_DU=sizes_before.du
POST_DU=sizes_after.du

diff_sizes() { du -ab | grep -Pv "^0\t" | grep -Pv "[0-9]+\t./(${PRE_DU})|(${POST_DU})" >${PRE_DU}; $1; du -ab | grep -Pv "^0\t" | grep -Pv "[0-9]+\t./(${PRE_DU})|(${POST_DU})+" >${POST_DU}; diff ${PRE_DU} ${POST_DU}; };

第二种情况 - 大小和日期

添加以下脚本然后.bashrc就可以像这样使用了 diff_sizes_and_dates script.sh

alias file_sizes_and_dates="find . -type f -exec ls -al {} + | awk {'printf(\"%8s\t%s %2s %5s %s\n\",\$5,\$6,\$7,\$8,\$9)'}"

PRE_DU=sizes_before.du
POST_DU=sizes_after.du

diff_sizes_and_dates() { file_sizes_and_dates | grep -Pv "^\s*0\t" | grep -Pv " ./(${PRE_DU})|(${POST_DU})$" >${PRE_DU}; $1; file_sizes_and_dates | grep -Pv "^\s*0\t" | grep -Pv " ./(${PRE_DU})|(${POST_DU})$" >${POST_DU}; diff ${PRE_DU} ${POST_DU}; };

进一步的命令分解是这里

相关内容