我需要找出在两个不同时间(脚本开始和结束时间)之间在文件系统路径(/home/user01/myapps/
)中添加/更新的文件或文件夹列出的内容。
我正在运行一个Shell脚本来更新/添加新文件到不同来源的资源路径/home/user01/myapps/
。因此,在脚本结束时,我想知道已添加或更新的文件或文件夹列表。
我有以下命令
查找/ opt / app / tds / tdsbatch -mtime -1
但是,我不确定脚本的运行时间。
确实有任何帮助!
答案 0 :(得分:4)
在任何需要的时刻记录时间:
# record the current time in seconds on script startup
start_time=$(date +%s)
...
# do whatever you like
...
# to get the runtime in secods - if you like:
runtime=$(($(date +%s) - start_time))
# to get the runtime in minutes (minutes are useful for -mmin find param)
runtime=$((($(date +%s) - start_time) / 60))
...
# to record the finish time in seconds:
end_time=$(date +%s)
现在find
根据您的需要。
find /path \( -mmin $((-($(date +%s) - start_time) / 60)) \
-a $((($(date +%s) - end_time) / 60)) \)
-mmin
参数指定修改后(当前时间 - 脚本开始时间)从现在开始修改分钟 -mmin
参数指定修改之前(当前时间 - 脚本结束时间)从现在开始修改分钟 -a
参数一起并附在前缀括号中你可能会这样做。否则我需要更多关于你的需求的澄清。
答案 1 :(得分:0)
在脚本开始时,您可以对任何现有文件使用touch命令或创建虚拟文件。
e.g。
脚本启动
touch filename1 - 它会将filename1的时间戳更改为当前时间
然后在脚本结束时,您可以使用以下命令:
查找目录名称-newer filename1
它将在该目录中的filename1的时间戳之后修改或创建所有文件