![扫描更改的文件(就像 Cheat Engine 扫描更改的内存地址一样)](https://linux22.com/image/135997/%E6%89%AB%E6%8F%8F%E6%9B%B4%E6%94%B9%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%88%E5%B0%B1%E5%83%8F%20Cheat%20Engine%20%E6%89%AB%E6%8F%8F%E6%9B%B4%E6%94%B9%E7%9A%84%E5%86%85%E5%AD%98%E5%9C%B0%E5%9D%80%E4%B8%80%E6%A0%B7%EF%BC%89.png)
几年前,当我还在使用 Windows 时,我使用了一个名为“Cheat Engine”的工具,它可以让你扫描内存地址。例如,如果您想找出哪个地址存储了窗口的位置,您可以:
- 进行初始扫描
- 移动窗口
- 过滤掉所有没有改变的地址
- 不要移动窗户
- 过滤掉所有发生变化的地址
- 移动窗口
- 过滤掉所有没有改变的地址
- ...
直到只剩下一个地址。这就是包含窗口位置的那个。
我想做类似的事情,但是在 Linux 上并且使用文件而不是内存地址。
我基本上想找到一些没有正确记录的配置文件。所以我想做的是:
- 对所有文件进行初始扫描
- 更改将修改我的目标配置文件的设置
- 过滤掉所有没有改变的文件
- 没做什么
- 过滤掉所有已更改的文件
- ETC。
直到我只剩下一个文件。 (我正在寻找的配置文件。)
Linux 有没有一个工具可以实现这一点?或者你知道在 bash 中执行此操作的简单方法吗?
答案1
该find
命令将在指定路径(下例中的 /target_directory)中搜索在过去两分钟(-mmin -2)内更改的文件(-type f),然后用于ls
向您显示这些文件及其详细信息:
touch changes.txt
find /target_directory -type f -mmin -2 -exec ls -al {} \; >> changes.txt
time >> changes.txt
sleep 60
find /target_directory -type f -mmin -1 -exec ls -al {} \; >> changes.txt
less changes.txt
我相信运行它是帮助搜索配置文件的更简单的方法。
答案2
您不需要对文件进行初始扫描。只需创建一个时间戳文件。然后,在一段时间后,查找在创建时间戳文件后已修改的文件。
touch timestamp
# time passes
find top-dir -type f -newer timestamp
这显然没有捕获已经被删除的文件已删除。