linux - 比较二进制文件以导出文本文件并查找自上次导出后哪些二进制文件已更改或下一个

标签 linux bash file shell batch-file

我有一个文件夹,里面装满了专有格式的二进制文件,我必须使用笨拙的软件将其导出到文本文件,最后我得到了一个装满文件对的文件夹:

myfile1.bin
myfile1.bin.txt
myfile2.bin
myfile2.bin.txt
myfile3.bin
myfile3.bin.txt

我不断将新的 bin 文件推送到服务器,因此 myfile3.bin 的文件大小可能发生了变化,我现在有一个新的 myfile4.bin。所以我需要定期检查 txt 文件中哪些 bin 文件发生了变化(大小/时间戳),以及哪些 bin 文件没有 txt 文件并将它们写入 changed.txt 文件中,我可以使用软件加载该文件以转换新文件。

我想我必须保留文件夹中当前文件的列表(包括时间戳和大小),并将 10 分钟后的文件夹内容与保存的信息进行比较,以查看发生了什么变化。

非常感谢任何想法和帮助!

最佳答案

请检查以下是否有帮助:

#!/bin/bash 
while [ 1 ] 
do 
        ls -ltr /dir_to/Monitor > out.txt  # you can try ls -1l as well, depending upon the requirement
        sleep 600 
        ls -ltr /dir_to/Monitor  > out1.txt 

        if diff out.txt out1.txt > diff.txt; then 
                echo "Not Changed"
        else 
                echo "Changed" # diff is changed
                cp diff.txt diff_$(date +%s).txt #Copy the diff to a different file. 
        fi 

done 

关于linux - 比较二进制文件以导出文本文件并查找自上次导出后哪些二进制文件已更改或下一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23664858/

相关文章:

java - Files.move REPLACE_EXISTING 无法解析为变量

Linux命令根据字符分割文件中的每一行并仅将指定列写入另一个文件

file - emacs lisp代码添加文件进行监控

python - 如何读取/访问具有非 ascii 字符的文件名

linux - 命令、函数和系统调用之间的区别

c - close() 在 Linux 上调用 fsync() 吗?

bash - 如何通过 SSH 重命名所有文件

linux - 如何为 Gnome 和 Gtk 配​​置 GSettings

bash + awk + ​​grep ....解析并保存变量

python - 从远程机器上的 docker 容器上执行命令